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

开启minifyEnabled后Android低版本崩溃:NoClassDefFoundError(LinkOption)

问题:开启minifyEnabled true后Android应用在低API版本崩溃

开启minifyEnabled true运行Android应用时出现崩溃异常;注释该配置后应用可正常启动。

错误信息

AndroidRuntime             E  FATAL EXCEPTION: main
Process: my.app.android, PID: 24808
java.lang.NoClassDefFoundError: Failed resolution of: [Ljava/nio/file/LinkOption;
    at af.h.<clinit>(JavaFlexibleTypeDeserializer.kt:18)
    at pl.h.onCreate(MyApp.java:302)
    at my.app.android.MyBaseApp.onCreate(MyBaseApp.kt:1)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
    at android.app.ActivityThread.-wrap1(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.nio.file.LinkOption" on path: DexPathList[[zip file "/data/app/my.app.android-2/base.apk"],nativeLibraryDirectories=[/data/app/my.app.android-2/lib/x86, /data/app/my.app.android-2/base.apk!/lib/x86, /vendor/lib, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    at af.h.<clinit>(JavaFlexibleTypeDeserializer.kt:18) 
    at pl.h.onCreate(MyApp.java:302) 
    at my.app.android.MyBaseApp.onCreate(MyBaseApp.kt:1) 
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707) 
    at android.app.ActivityThread.-wrap1(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Suppressed: java.lang.ClassNotFoundException: java.nio.file.LinkOption
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 14 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

已尝试的排查方案

  • ProGuard保留类:已在ProGuard文件中添加以下规则,但无效:
    -keep class java.nio.file.** { *; }
    
    -keep class java.nio.file.LinkOption { *; }
    
    -keepclassmembers class java.nio.file.* {
        <fields>;
        <init>();
        <methods>;
    }
    
  • 升级Firebase版本:因早期栈信息涉及FirebaseInitProvider,已升级至最新版本并更新classpath "com.google.gms:google-services:4.3.14",但错误仍存在。
  • Desugaring处理:尝试coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.1'时出现FakeDependency.jar为空问题;改用com.android.tools:desugar_jdk_libs:2.0.1可构建但崩溃未解决。

环境测试情况

问题仅出现在API Level 23、24设备且开启minifyEnabled true时;API Level 33设备无论配置如何均正常。测试状态:

API LvlminifyEnabledStatus
23trueCrashed
23falseSucceeded
24trueCrashed
24falseSucceeded
33trueSucceeded
33falseSucceeded

我将测试API25-27并更新表格,请问还有哪些遗漏或未尝试的解决方向?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:37:11