对 module-info.class 进行 lint 分析期间出现意外失败

lig*_*igi 5 android lint

有没有其他人看到过这个错误:

Errors found:

  /home/ligi/git/walleth/app/module-info.class: Error: Unexpected failure during lint analysis of module-info.class (this is a bug in lint or one of the libraries it depends on)

  Stack: NullPointerException:InvalidPackageDetector.checkClass(InvalidPackageDetector.java:112)?AsmVisitor.runClassDetectors(AsmVisitor.java:154)?LintDriver.runClassDetectors(LintDriver.kt:1461)?LintDriver.checkClasses(LintDriver.kt:1329)?LintDriver.runFileDetectors(LintDriver.kt:1096)?LintDriver.checkProject(LintDriver.kt:895)?LintDriver.analyze(LintDriver.kt:416)?LintCliClient.run(LintCliClient.java:235)

  You can set environment variable LINT_PRINT_STACKTRACE=true to dump a full stacktrace to stdout. [LintError]
  Applies to variants: noGethNoFirebaseForFDroidOnlineDebug
  /home/ligi/git/walleth/app/module-info.class: Error: Unexpected failure during lint analysis of module-info.class (this is a bug in lint or one of the libraries it depends on)

  Stack: NullPointerException:
Run Code Online (Sandbox Code Playgroud)

我只发现这个项目面临同样的问题:

https://github.com/mozilla-mobile/android-components/issues/1730

任何解决方法都会很好

aha*_*aha 6

适用于 Android Studio 3.3 及更早版本的 Android 工具会阻塞Java 平台模块系统(JPMS)module-info.class所需的文件。考虑到 JPMS 随附的第一个版本 Java 9 于 2017 年 9 月发布,而 Java 11(JPMS 的第一个 LTS 版本)于 2018 年 9 月发布,比 Android Studio 3.3 早大约 4 个月,这令人难以置信。Android 问题跟踪器中的相关错误:[lint] InvalidPackage crashes on module-info.class from byte-buddy

因此,解决方法:

  • 将 Android 工具升级到 3.4 或更高版本的测试版。我在我的一个项目中测试了 3.4.0-beta05,它运行良好。
  • 将您使用的任何库降级到尚不支持 JPMS 的版本(即不包含module-info.java)。

  • 他们的发布周期很糟糕。根据 https://issuetracker.google.com/issues/117686566#comment4 他们在 2018 年 11 月修复了它,只是没有将其推送到稳定版本或发布新的稳定版本。这是 Android Studio 反复出现的问题。 (2认同)