问题描述
我将我的 Android Studio 版本从 4.1 更新到 4.2 并且项目没有编译,因为 Proguard 版本非常旧 (4.7) 并且它与 Java 10 不兼容,但是我决定将我的项目从 proguard 迁移到 R8,但由于此错误,项目未编译:
File not found: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/rt.jar
然后我将 R8 设置为 false 并使用 Proguard 将此行添加到我的 build.gradle 中,以便将我的 Proguard 更新到更高版本:
classpath 'net.sf.proguard:proguard-gradle:6.1.1'
但是,我还是遇到了同样的错误,而不是第一个告诉我更新新版本 Proguard 的错误。
那么我该如何修复那个 rt.jar?也许某个 AS 版本和另一个版本的目录发生了变化?,如果我将我的 android studio 降级到 4.1 并恢复我所做的所有更改,该项目运行良好,但我想升级 Android Studio。
解决方法
从 JDK 9 开始,rt.jar
不再是 JDK 的一部分,有关详细信息,请参阅 Removed rt.jar and tools.jar in JDK 9。
在大多数情况下,如果在 JDK 8 中的 rt.jar
应该可以工作之前编译需要 rt.jar
。
但是,在 Android 项目中使用 rt.jar
的原因是什么?通常,缩小时由 Android Studio/AGP 提供的 android.jar
应该可以工作。