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

升级Android Gradle Plugin后RenderScript出现崩溃问题

问题

根据Android Studio提示将Android Gradle Plugin(AGP)从7.4.1升级到8.0.1后,App出现崩溃,崩溃日志如下:

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/renderscript/RenderScript$ContextType;
    at at.favre.lib.dali.builder.ContextWrapper.<init>(ContextWrapper.java:14)
    at at.favre.lib.dali.Dali.<init>(Dali.java:40)
    at at.favre.lib.dali.Dali.create(Dali.java:77)
    at com.package.Fragment.HomeScreen$12.lambda$onLoadFailed$0$com-obu_qus-Fragment-HomeScreen$12(HomeScreen.java:1795)
    at com.package.Fragment.HomeScreen$12$$ExternalSyntheticLambda0.run(Unknown Source:2)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:226)
    at android.os.Looper.loop(Looper.java:313)
    at android.app.ActivityThread.main(ActivityThread.java:8663)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.renderscript.RenderScript$ContextType" on path: DexPathList[[dex file "/data/data/com.package/code_cache/.overlay/base.apk/classes10.dex", dex file "/data/data/com.package/code_cache/.overlay/base.apk/classes6.dex", dex file "/data/data/com.package/code_cache/.overlay/base.apk/classes7.dex", zip file "/data/app/~~2C8fMsf-zl0sOCn5GEsoRg==/com.package-rp4FWq6xglCuxgGnQfLCEg==/base.apk"],nativeLibraryDirectories=[/data/app/~~2C8fMsf-zl0sOCn5GEsoRg==/com.package-rp4FWq6xglCuxgGnQfLCEg==/lib/arm64, /data/app/~~2C8fMsf-zl0sOCn5GEsoRg==/com.package-rp4FWq6xglCuxgGnQfLCEg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    ... 13 more

升级后gradle.properties文件自动添加了以下配置:

android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false

切换回AGP 7.4.1的旧代码分支时App运行正常,请问RenderScript相关崩溃的原因是什么?

原因分析

AGP 8.0+ 对RenderScript的默认支持策略发生了关键变化:

  • AGP 7.x及更早版本中,即使未显式启用RenderScript,构建工具会自动引入androidx.renderscript相关依赖,适配那些依赖该类库的第三方组件(比如你用到的at.favre.lib.dali)。
  • 但从AGP 8.0开始,默认不再自动添加RenderScript依赖,必须在构建配置中显式声明启用,否则依赖RenderScript的第三方库会在运行时找不到对应的类,引发ClassNotFoundException或NoClassDefFoundError。
解决方案

在App模块的build.gradle(或build.gradle.kts)中添加以下配置,显式启用RenderScript支持:

android {
    // 保留原有配置
    buildFeatures {
        renderScript true
    }
    // 适配低版本设备可添加以下配置(根据项目最低SDK调整版本号)
    renderscriptTargetApi 21
    renderscriptSupportModeEnabled true
}

或者直接在依赖块中添加RenderScript的依赖:

dependencies {
    implementation 'androidx.renderscript:renderscript:1.0.0'
}

添加完成后重新构建项目,即可解决该崩溃问题。

内容的提问来源于stack exchange,提问作者Ashvin solanki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:02:45