React Native生成APK失败::app:minifyProductionReleaseWithR8任务报错
问题
项目能在Android、iOS平台正常构建运行,也能在App Store完成发布,但使用Android Studio生成APK时,R8混淆任务失败,报错信息如下:
> Task :app:minifyProductionReleaseWithR8 FAILED FAILURE: Build failed with an exception. - What went wrong: Execution failed for task ':app:minifyProductionReleaseWithR8'.
具体错误为执行com.android.build.gradle.internal.tasks.R8Task$R8Runnable时发生失败。
已尝试以下操作但未解决问题:
- 删除并重装node_modules
- 清理Gradle和Kotlin缓存
- 重装Android Studio
- 同步Gradle
- 清理项目及Yarn缓存
同事使用相同Gradle版本可成功生成APK。
解决办法
1. 核对本地环境与同事的差异
- 检查JDK版本:R8对JDK版本有明确要求,执行
java -version查看本地版本,确保和同事完全一致(比如同为JDK 11或17)。 - 匹配Android SDK组件:确认本地Build Tools、Android SDK Platform版本和同事完全相同,重点检查SDK Tools中的R8相关组件版本。
- 核对环境变量:检查
ANDROID_HOME、JAVA_HOME的配置路径和版本,确保和同事的配置一致。
2. 排查R8配置问题
- 检查混淆规则文件:查看
proguard-rules.pro或r8.pro文件,确认是否有误删必要keep规则、新增错误规则的情况。可临时注释所有自定义规则,尝试重新构建,验证是否是规则导致的冲突。 - 获取详细错误日志:在Android Studio的Terminal中执行
./gradlew assembleProductionRelease --stacktrace,通过完整错误堆栈定位具体是哪个类或第三方依赖引发的混淆失败。
3. 检查依赖差异
- 对比依赖树:执行
./gradlew dependencies导出项目依赖树,和同事的依赖树对比,排查是否存在第三方库版本不一致的情况。 - 清理Gradle依赖缓存:执行
./gradlew cleanBuildCache,清理本地Gradle依赖缓存后重新下载依赖,避免缓存损坏的依赖文件引发问题。
4. 核对项目文件的本地修改
- 对比app模块
build.gradle:检查是否本地修改了minifyEnabled、shrinkResources等混淆相关配置,确保和同事的配置完全一致。 - 检查
gradle.properties:确认是否本地添加了影响R8运行的参数(如android.enableR8.fullMode=true),和同事的文件进行对比校验。
内容的提问来源于stack exchange,提问作者niyoup74
相关产品推荐
相关产品推荐

