【问题标题】:google errorprone java.lang.NoSuchMethodError谷歌容易出错的 java.lang.NoSuchMethodError
【发布时间】:2018-04-19 13:30:09
【问题描述】:

我们正面临一个奇怪的问题。我们正在使用 net.ltgt.errorprone,版本 (0.0.8),以及 guava(版本 21)和 gradle(版本 3.1)。直到今天早上,一切都运行良好。但是突然间所有开发人员都开始收到此错误

[system.err] An exception has occurred in the compiler (1.8.0_162). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NoSuchMethodError: com.google.common.base.Verify.verify(ZLjava/lang/String;Ljava/lang/Object;)V
at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:132)

我们在网上搜索了大部分解决方案都与番石榴有关,但番石榴版本没有变化或 很长一段时间以来容易出错或gradle。我们也尝试运行旧代码,得到同样的错误。我们无法理解问题的根本原因。有人遇到过同样的问题吗?

【问题讨论】:

    标签: gradle guava errorprone


    【解决方案1】:

    com.google.collections:google-collections 被重命名为com.google.guava:guava,这真的很烦人,而且通常会导致类路径上有两个版本的库。

    这是我诊断问题的方法

    1. 在“损坏的”构建中运行 gradle dependencies
    2. 在源代码控制 (git?) 中返回历史记录,直到你有一个工作版本
    3. 在“工作”构建中运行 gradle dependencies
    4. 查找com.google.collections:google-collections 版本的差异
    5. 查找com.google.guava:guava 版本的差异

    请参阅 Gradle 文档中讨论 guava 重命名的 here

    您可能需要将此添加到build.gradle

    dependencies {
        modules {
            module("com.google.collections:google-collections") {
                replacedBy("com.google.guava:guava", "google-collections is now part of Guava")
            }
        }
    }
    

    【讨论】:

    • 感谢 lance-java。问题有所不同,但您的回答为我们的努力指明了方向。我已经发布了有关该决议的答案。
    【解决方案2】:

    发布了一个易于出错的新版本 (2.3.0),这破坏了我们的构建。

    我们使用这个命令找出依赖关系

    ./gradlew -q dependencyInsight --configuration errorprone --dependency error_prone_core
    

    这清楚地表明正在使用最新版本。我们通过强制使用最后一个可行的版本来修复它。在 build.gradle 文件中添加了以下几行

    configurations.all {
        resolutionStrategy {
            force 'com.google.errorprone:error_prone_core:2.2.0'
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-26
      • 2016-03-17
      • 2019-07-12
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多