繁体   English   中英

无法实例化应用程序android.support.multidex.MultiDexApplication:java.lang.ClassNotFoundException:路径:DexPathList

[英]Unable to instantiate application android.support.multidex.MultiDexApplication: java.lang.ClassNotFoundException: on path: DexPathList

你好吗 ?。 我已经仔细搜索了这个问题,但是对于为什么以及如何解决此问题似乎没有完整的答案。

好的,起初我运行的Android Studio 1.5.1的gradle和sdk版本已经完全过时,但是那时我感觉可以使用那些旧版本了,但是现在我将所有这些更新为android 2.3.1最新的SDK和最新的Gradle。

您可能已经知道我是否可以直接从Android Studio运行,但是效果很好,但是当我复制app_debug.apk文件时,它突然显示错误

 Unable to instantiate application android.support.multidex.MultiDexApplication: java.lang.ClassNotFoundException: Didn't find class "android.support.multidex.MultiDexApplication" on path: DexPathList[[zip file "/data/app/com.asd.asd.asd1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

我已经针对此特定错误应用了多种解决方案,其中一项成功的更改是更改了我的Gradel版本的modul:app gradle

classpath 'com.android.tools.build:gradle:2.3.1'

classpath 'com.android.tools.build:gradle:2.2.3'

但后来我尝试了之前制作的所有其他应用,并应用了相同的方法。 奇怪的是,它没有用。

而且我认为这里缺少一些东西,但是我不知道是什么,我不想启用multiDexEnabled,因为我不认为这是解决此问题的好方法。

谢谢。

您要做的是在gradle中启用Multidex

defaultConfig{
     multiDexEnabled true
}

否则,您需要尽量减少对大量依赖的使用。 如果您坚持使用这些依赖项,则需要在这些依赖项中排除模块android支持模块。

例如,我的清单中已经有appcompat-v7。 因此请从第三方库中排除模块appcompat-v7。

compile ('uk.co.chrisjenx:calligraphy:2.2.0'){
        exclude group: 'com.android.support', module: 'appcompat-v7'
        transitive = false
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM