我的应用程序突然出现了一些非常奇怪的问题: 在对我的代码稍作更改后(我在第一个问题后引用了 /* */,所以我不认为它来自这里),我有一个关于 multiDex 的错误:
java.lang.RuntimeException: 无法实例化应用程序 android.support.multidex.MultiDexApplication: java.lang.ClassNotFoundException: 没有找到类 路径上的“android.support.multidex.MultiDexApplication”: DexPathList[[zip 文件 “/data/app/.........-i-_Gfmdwe7_cZrleQ2mI9w==/base.apk”,压缩文件 "/data/app/com....
我检查了 MultiDex 需要的一切:https://developer.android.com/studio/build/multidex.html
然后我清理项目,重建,关闭 Android Studio,重新打开,并在 AVD(Nexus 5 API26 x86)上运行项目,我有一个新错误:“加密不成功......重置手机......)
我用 AVD Manager 擦除数据,从那以后我遇到了与上面相同的错误,即 Multidex 问题。我真的不明白为什么...
尝试 10k 次之后,我注意到我的 com.android.tools.build:gradle:3.1.0-alpha04' 已准备好更新。 所以我在 Project Build.gradle 中将 alpha04 更改为 alpha05
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0-alpha05'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:3.1.1'
}
它有效。但为什么它会如此不稳定?
Android Studio 3.0.1 Build #AI-171.4443003,构建于 2017 年 11 月 9 日 JRE:1.8.0_152-release-915-b01 Kotlin v.1.2.0
实现 'com.android.support:multidex:1.0.2' 实现 'com.google.android.gms:play-services-auth:11.6.2' 实现 'com.android.support:multidex:1.0.2'
我也有 multidex 的问题,并通过添加对 gradle:app 模块的依赖来解决它
compile 'com.android.support:multidex:1.0.1'
在清单应用程序标签中,添加
android:name="android.support.multidex.MultiDexApplication"
这些更改帮助我解决了 multidex 的问题。
DexFile 类在 API 级别 26 中已弃用。您必须改用 PathClassLoader。 https://developer.android.com/reference/dalvik/system/DexFile.html
https://developer.android.com/reference/dalvik/system/PathClassLoader.html