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

时间:2017-05-09 07:44:38

标签: java android android-studio android-gradle build.gradle

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

好吧,起初我正在运行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]]

我已经为这个特殊错误应用了许多解决方案,一个成功的解决方案是改变我的模块版本:app gradle from

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

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

然后我尝试了之前我做过的所有其他应用程序并应用了相同的方法。奇怪的是,它没有用。

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

感谢。

1 个答案:

答案 0 :(得分:0)

您需要做的是在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
}