首页 > 解决方案 > java.lang.NoClassDefFoundError:解析失败:Ljava/lang/invoke/MethodHandles$Lookup

问题描述

应用程序每次都会崩溃。模拟器运行良好。通过 ADB 在 Bluestacks 上运行它,无法在设备上尝试。MinSdk - 23。

试过了:没用compile 'com.android.support:multidex:1.0.0'

错误:

2020-03-25 14:08:50.912 8649-8649/com.untd.carcheck E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.untd.carcheck, PID: 8649
    java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/invoke/MethodHandles$Lookup;
        at retrofit2.Platform.<init>(Platform.java:62)
        at retrofit2.Platform$Android.<init>(Platform.java:115)
        at retrofit2.Platform.findPlatform(Platform.java:44)
        at retrofit2.Platform.<clinit>(Platform.java:34)
        at retrofit2.Platform.get(Platform.java:37)
        at retrofit2.Retrofit$Builder.<init>(Retrofit.java:430)
        at com.untd.carcheck.data.network.VinApiService$Companion.invoke(VinApiService.kt:55)
        at com.untd.carcheck.ui.VehicleActivity.<init>(VehicleActivity.kt:41)
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2558)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6125)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.invoke.MethodHandles$Lookup" on path: DexPathList[[zip file "/data/app/*.*.*-1/base.apk"],nativeLibraryDirectories=[/data/app/*.*.*-1/lib/x86_64, /system/lib64, /vendor/lib64, /data/downloads, /data/priv-downloads]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)

标签: javaandroidkotlinretrofitretrofit2

解决方案


尝试将 minsdk 更改为 26。因为在 API 级别 26 中添加了 MethodHandles$Lookup 类。请参阅此文档

这意味着您不能再在 API 级别 23 的设备上安装您的应用程序。


推荐阅读