将 Android Gradle 插件升级到 8.2.2 后使用 R8 缩小 Android 应用程序时出错

问题描述 投票:0回答:1

我最近将我的 Android 应用程序项目中的 Android Gradle 插件从版本 7.4.2 升级到了 8.2.2。但是,我现在在发布构建期间执行 minifyReleaseWithR8 任务时遇到错误。

我收到的错误消息如下:

任务:app:minifyKioskDebugWithR8 失败 AGPBI:{“kind”:“error”,“text”:“com.android.tools.r8.ResourceException:com.android.tools.r8.internal.vc:读取'/Users/harinikesh/时发生I/O异常StudioProjects/instore/app/build/intermediates/merged_java_res/kioskDebug/base.jar':/Users/harinikesh/StudioProjects/instore/app/build/intermediates/merged_java_res/kioskDebug/base.jar","来源":[{"文件“:”/Users/harinikesh/StudioProjects/instore/app/build/intermediates/merged_java_res/kioskDebug/base.jar"}],"工具":"R8"} com.android.tools.r8.ResourceException: com.android.tools.r8.internal.vc:读取时发生 I/O 异常 '/Users/harinikesh/StudioProjects/instore/app/build/intermediates/merged_java_res/kioskRelease/base.jar': /Users/harinikesh/StudioProjects/instore/app/build/intermediates/merged_java_res/kioskRelease/base.jar

我在生成发布版本时遇到此错误

release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}

我尝试将shrinkResources和minifyEnabled设置为false,构建成功了。

这些错误是在我更新 Android Gradle 插件后才开始出现的。我已尝试清理项目并确保所有依赖项都是最新的,但问题仍然存在。

有其他人在升级到 Android Gradle Plugin 8.2.2 时遇到类似的问题吗?如何解决这些错误并使用 R8 成功缩小我的发布版本?

android build.gradle proguard android-r8
1个回答
0
投票

删除 build.gradle 中的应用程序包重命名逻辑可能会解决该问题。

我们遇到了完全相同的错误。按照

./gradlew --stacktrace :app:minifyReleaseWithR8
的建议使用
sgjesse
查看堆栈跟踪后,我们意识到发生错误是因为在构建过程中找不到文件。

在我们的应用程序 build.gradle 文件中,我们有一个

tasks.whenTaskAdded {
闭包,可以在创建构建时重命名包。在此闭包内,文件被重命名/移动。从我们的 build.gradle 文件中删除此重命名逻辑后,错误已解决。

请注意,我确信可以纠正重命名逻辑。在我们的例子中,我们不需要它并决定删除它。

© www.soinside.com 2019 - 2024. All rights reserved.