android - Android assembleRelease 失败并出现错误:不支持的类版本号 [53.0](最大 52.0,Java 1.8)
问题描述
- 安卓工作室 4.0.1
- gradle-wrapper.properties:distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip
- 构建.gradle:
dependencies {
classpath "com.android.tools.build:gradle:3.0.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
组装发布 apk 时,失败并出现错误:
警告:处理任务 java.io.IOException 时出现异常:无法读取 [C:\Users\derek_y\AppData\Local\Android\Sdk\platforms\android-30\android.jar](无法处理类 [android /annotation/Nullable.class](不支持的类版本号 [53.0](最大 52.0,Java 1.8))):app:transformClassesAndResourcesWithProguardForRelease FAILED
FAILURE:构建失败并出现异常。
为什么 android-30\android.jar 需要 Java 版本 53.0 (Java 9)?Android Studio 4.0.1 不支持 Java 9 对吧?
PS我试过
- gradle-wrapper.properties:distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip
- 构建.gradle:
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
但随后运行编译的 apk 触发了另一个来自第三方 SDK 的错误:
java.lang.VerifyError: Rejecting class a.b.c because it failed compile-time verification
我想要一个快速修复,并且请求第三方更新需要时间,所以目前这没有帮助。或者任何人都可以解释为什么会发生此 VerifyError 以及如何解决它?
十分感谢。
解决方案
这看起来像是 Android Gradle 插件中的一个问题(问题 77587908)。它已在 AGP 3.3.0 中修复。
尝试将 AGP 升级到 3.3.0 而不是 4.0.1:
classpath "com.android.tools.build:gradle:3.3.0"
这可能足以解决您的问题而不会引入其他问题。
推荐阅读
- git - 从 git 存储库到网站,作为预览。可以这样做吗?
- javascript - 如何将嵌套的“for”优化为函数式编程
- reactjs - 如何在单页应用程序中使用哈希路由器导航时保持组件中的状态
- php - Laravel 中的单一验证
- sql-server - Laravel - 不支持的驱动程序
- mysql - 为什么mysql工作台在vesion 8 mysql的这个版本中说“加密”不是有效的位置?
- c# - 如何获取 Outlook.MeetingItem 的发件人 ExchangeUser 和邮件地址
- node.js - 在firebase firestore集合中创建新文档时如何更新另一个文档中的数量?
- java - scanner.useDelimiter 不适用于基于 Web 的 CSV 文件
- html - 当我缩放页面时,文本一直相互重叠