升级Gradle至8.6与AGP至8.4.1后无法构建Release APK
针对你升级Gradle到8.6、AGP到8.4.1后,构建Release APK出现的java.lang.NullPointerException: Cannot invoke "com.android.tools.r8.internal.Gk0.B()" because the return value of "com.android.tools.r8.internal.Jw.b()" is null异常,试试下面这些解决方案:
降级Java编译版本到17
AGP 8.4.x官方推荐的Java版本范围是11-17,Java 18可能存在未适配的R8兼容性问题。修改app模块的compileOptions:compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 }同时在Android Studio中把Gradle JDK切换到Java 17(路径:File > Project Structure > SDK Location > Gradle Settings)。
升级AGP到最新补丁版本或稳定版
AGP 8.4.1可能存在已知的R8空指针bug,尝试升级到8.4.x的最新补丁版(比如8.4.2),或者直接升级到AGP 8.5.x稳定版(搭配Gradle 8.7),修改项目级build.gradle:plugins { id 'com.android.application' version '8.4.2' apply false id 'com.android.library' version '8.4.2' apply false }排查混淆规则冲突
先临时禁用混淆和资源压缩,验证是否能正常构建:buildTypes { release { minifyEnabled false shrinkResources false // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }如果构建成功,说明问题出在混淆规则上。逐步检查
proguard-rules.pro中的规则,确保反射、动态加载的类都添加了正确的keep规则;同时通过./gradlew app:dependencies排查依赖树,移除或升级不兼容AGP 8.x的老版本依赖库。清理构建缓存
旧缓存可能导致异常残留,执行以下命令清理后重新构建:./gradlew clean ./gradlew cleanBuildCache清理完成后重启Android Studio,再尝试构建Release版本。
显式指定匹配AGP版本的R8依赖
虽然android.enableR8已废弃,但可以尝试显式指定R8版本来和AGP对齐,在项目级build.gradle中添加:buildscript { dependencies { classpath 'com.android.tools:r8:8.4.1' // 版本与AGP保持一致 } }
内容的提问来源于stack exchange,提问作者Ashile The Great

