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