【问题标题】:java.lang.ClassNotFoundException: Didn't find class on path: DexPathList , After updating sdkjava.lang.ClassNotFoundException:在路径上找不到类:DexPathList,更新 sdk 后
【发布时间】:2026-01-19 13:50:01
【问题描述】:

大家好,我的应用程序一直运行良好,直到昨天,我昨天更新了我的 SDK,它首先开始报错,然后报错了

在值 v24 处找不到资源 ....

我搜索并通过更改 build.gradle 中的以下几行来解决它

compileSdkVersion 25
buildToolsVersion '25.0.2'

现在错误消失了,它更高的 android 版本 7.1.1 中运行完全正常 但是当我在低版本的android中运行时,它会给出以下错误

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.wowio.ebookreader, PID: 15469
                  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.wowio.ebookreader/com.eminosoft.ebookread.activity.SplashScreenActivity}: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
                      at android.app.ActivityThread.access$800(ActivityThread.java:155)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:136)
                      at android.app.ActivityThread.main(ActivityThread.java:5433)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:515)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
                      at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:155) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:136) 
                      at android.app.ActivityThread.main(ActivityThread.java:5433) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
                      at dalvik.system.NativeStart.main(Native Method) 

已经尝试过以下的事情

1.清理项目

2.使缓存失效/重启

3.设备上应用的删除

已经看过这些问题Question 1Question 2 没有任何效果。我该如何解决这个问题?

如果你需要任何东西,我会更新它

我的 build.gradle 文件

 apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    defaultConfig {
        applicationId "com.wowio.ebookreader"
        minSdkVersion 14
        targetSdkVersion 23
        multiDexEnabled true

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {

    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'
     // the are many more dependencies i removed to decrease size

    }

【问题讨论】:

  • 如果您在设备上使用 Cleanmaster 或类似应用,请尝试将其卸载

标签: android android-studio sdk classnotfoundexception


【解决方案1】:

是的,可能上面的答案是正确的,我没有按原样尝试。但是我以相反的方式解决了“您在android studio的设置中删除了即时运行选项”

转到-->文件菜单-->选择设置-->选择构建、执行、部署-->选择即时运行-->取消选中“启用即时运行”。

它对我有用。但某些应用程序(如谷歌地图集成应用程序)需要即时运行。

【讨论】:

  • 非常感谢。禁用即时运行后它对我有用。解决这个问题花了一整天的时间。
【解决方案2】:

像下面这样写一个类EnableMultiDex

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
}

并在AndroidManifest.xml 中将此类写入Application 标签内

 <application
    android:name="YourPakageName.EnableMultiDex"
    android:hardwareAccelerated="true"
    android:icon="@drawable/launch_logo"
    android:label="@string/app_name"
    android:largeHeap="true"
    tools:node="replace">

【讨论】:

  • 这需要扩展 Application 类。
【解决方案3】:

在我的情况下,我的项目在以下之后再次开始工作:

  • 从模拟器(或真实设备)卸载我的项目
  • 清理项目
  • 制作项目

【讨论】:

    【解决方案4】:

    同样的错误发生在我身上,因为我安装了在 outputs\apk 文件夹中创建的调试 apk,它变得更小并且缺少类,因为它可能是即时运行的结果。 因此,不要关闭即时运行,只需构建 APK(通过菜单中的 Build->build apk)并使用这个。

    【讨论】:

      【解决方案5】:

      禁用即时运行对我有用 我认为出现此问题是因为使用安装运行构建时缺少某些类(减小 apk 大小)

      【讨论】:

        最近更新 更多