首页 文章

ClassNotFoundException:在路径上找不到类“com.example.classname”:DexPathList

提问于
浏览
1

并非总是如此,但有时我在运行我的应用程序时会在logcat中看到此异常

引起:java.lang.ClassNotFoundException:在路径上找不到类“com.example.classname”:DexPathList [[directory“ . ”],nativeLibraryDirectories = [/ vendor / lib,/ system / lib]]

该应用程序不会崩溃,我的项目中存在 com.example.classname . 我正在使用android studio 2.2,我正在为我们的项目使用multidex . 我怀疑这个问题是因为multidex .

关于如何修复此异常的任何想法?

我们的build.gradle文件很大 . 我正在添加它的一部分

compileSdkVersion 23
        buildToolsVersion '23.0.3'

        defaultConfig {
            minSdkVersion 17
            targetSdkVersion 22
    multiDexEnabled true
    ......
    }
dependencies {
    compile 'com.android.support:multidex:1.0.1'
        testCompile('org.robolectric:shadows-multidex:3.0') {
            exclude group: 'org.robolectric', module: 'robolectric'
        }
}

并在自定义应用程序类中

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

1 回答

  • -1

    尝试在您的应用程序类中使用这几行

    extend android.app.Application
    

    这肯定会起作用:

    由于内存不足,android创建了两个dex文件,所以

    attachBaseContext()
    

    解决这个问题

    @Override
         protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
           }
    

    并在您的申请的gradle中

    defaultConfig {
        applicationId "com.example.YourApplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    
        multiDexEnabled true
    
        }
    
       dexOptions {
        javaMaxHeapSize "4g"
        }
    

相关问题