Android multidex出现问题,显示在dexpathlist中找不到的类

Android multidex出现问题,显示在dexpathlist中找不到的类,android,crash,android-multidex,Android,Crash,Android Multidex,我在我的应用程序中使用了Multidex,这导致了一些问题,导致我的应用程序在安装后立即打开时意外崩溃,当我通过android studio运行它时,它工作正常,但当我尝试在某些设备上使用我的apk安装应用程序时,它崩溃了,我认为这是特定于设备的,但每次我在任何设备上安装APK文件时,它都会崩溃。我尝试了很多方法来解决这个问题 我尝试清理项目并再次构建它,生成apk 和安装它,但没有工作 我试着使缓存失效并重新启动android studio,但仍然无法正常工作 然后我开始在互联网上寻找解决方

我在我的应用程序中使用了Multidex,这导致了一些问题,导致我的应用程序在安装后立即打开时意外崩溃,当我通过android studio运行它时,它工作正常,但当我尝试在某些设备上使用我的apk安装应用程序时,它崩溃了,我认为这是特定于设备的,但每次我在任何设备上安装APK文件时,它都会崩溃。我尝试了很多方法来解决这个问题

  • 我尝试清理项目并再次构建它,生成apk 和安装它,但没有工作

  • 我试着使缓存失效并重新启动android studio,但仍然无法正常工作

  • 然后我开始在互联网上寻找解决方案,我发现了很多建议,我尝试了所有的建议。我浏览了各种帖子、博客和文档,包括,还有更多

我的应用程序的min sdk版本是16,所以我这样做了

defaultConfig {
    ......
    minSdkVersion 16
    targetSdkVersion 25
    .......
    multiDexEnabled true
    proguardFiles 'proguard-rules.pro'
    ........        
    vectorDrawables.useSupportLibrary(true)

    // default scheme variables
    buildConfigField "String", "DEFAULT_SCHEME", "\"http\""
    buildConfigField "String", "REDIRECT_SCHEME", "\"https\""
}
我在依赖项中添加了这一行

 compile 'com.android.support:multidex:1.0.1'
我试图理解gradle文件中的dexoptions并进行了大量实验

dexOptions {
    preDexLibraries = false
    javaMaxHeapSize "4g"
}
afterEvaluate {
tasks.matching {
    it.name.startsWith('dex')
}.each { dx ->
    if (dx.additionalParameters == null) {
        dx.additionalParameters = []
    }
    dx.additionalParameters += '--multi-dex'
    dx.additionalParameters += "--main-dex-      list=$projectDir/multidex.keep".toString()
}
}
我创建了一个名为multidex.keep的文件,其内容如下:

android/support/multidex/BuildConfig/class
android/support/multidex/MultiDex$V14/class
android/support/multidex/MultiDex$V19/class
android/support/multidex/MultiDex$V4/class
android/support/multidex/MultiDex/class
android/support/multidex/MultiDexApplication/class
android/support/multidex/MultiDexExtractor$1/class
android/support/multidex/MultiDexExtractor/class
android/support/multidex/ZipUtil$CentralDirectory/class
android/support/multidex/ZipUtil/class
然后我将这些行添加到应用程序的gradle文件中

dexOptions {
    preDexLibraries = false
    javaMaxHeapSize "4g"
}
afterEvaluate {
tasks.matching {
    it.name.startsWith('dex')
}.each { dx ->
    if (dx.additionalParameters == null) {
        dx.additionalParameters = []
    }
    dx.additionalParameters += '--multi-dex'
    dx.additionalParameters += "--main-dex-      list=$projectDir/multidex.keep".toString()
}
}

我仍然无法解决问题,仍在寻找解决方案,欢迎提供任何帮助/建议,谢谢

在清单文件的应用程序标记中添加以下行:

android:name="android.support.multidex.MultiDexApplication"

在清单文件的应用程序标记中添加以下行:

android:name="android.support.multidex.MultiDexApplication"

嘿@R.R.M,我根据你的建议尝试了这个,在安装了apk之后,当我通过android studio运行它时,应用程序崩溃了!你能发布堆栈跟踪以便我能理解为什么会发生这种情况吗?嘿@R.R.M,我是根据你的建议尝试的,当我在安装apk后立即通过android studio运行应用程序时,应用程序崩溃了!你能发布堆栈跟踪以便我理解为什么会发生这种情况吗?请添加异常(包括调用跟踪)详细信息。你解决问题了吗?我也遇到了类似的崩溃……我刚刚更新了我的android studio,它就停止了,我尝试了很多方法,但只有一半的时间有效。然后我刚刚更新了我的android studio,我没有再看到这个问题!请添加异常(包括呼叫跟踪)详细信息。您解决问题了吗?我也遇到了类似的崩溃……我刚刚更新了我的android studio,它就停止了,我尝试了很多方法,但只有一半的时间有效。然后我刚刚更新了我的android studio,我没有再看到这个问题!