You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Gradle至8.6与AGP至8.4.1后无法构建Release APK

解决AGP 8.4.1 + Gradle 8.6构建Release APK时R8空指针异常问题

针对你升级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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:07:21