【发布时间】:2019-08-24 06:29:05
【问题描述】:
我刚刚将 Android Studio 更新到 3.5。
顺便说一句,更新了 Gradle 版本和几个库。
令我惊讶的是,该应用程序不适合单个 DEX(使用超过 73,500 种方法,据我所知,之前的调试版本约为 50K)
我做了哪些改变:
Kotlin 1.3.41 -> 1.3.50
classpath 'com.android.tools.build:gradle:3.5.0' from 3.4.2
classpath 'com.google.gms:google-services:4.3.1' from 4.3.0
implementation 'com.google.android.gms:play-services-ads:18.1.1' from 18.1.0
implementation 'com.google.firebase:firebase-core:17.1.0' from 17.0.1
新版本 APK 的方法比之前的版本少 (60) (26760)。
我遇到的其他问题: NDK 解析结果:项目设置:Gradle 模型版本=5.4.1,NDK 版本为 UNKNOWN 错误
使用 AndroidX 的应用。
应用程序正在编译,设置后现在可以正常工作
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
我从旧版 Android Studio 中导入了设置。也许这就是问题所在? 或者没有问题,我必须协调并使用multiDEX(用于开发)并在发布apk drop multiDEX?调试版本的 multidex 会比 minifyEnabled 更好吗?
更改:
debug {
// minifyEnabled true
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
multiDexEnabled true
}
当我使用 APK >=21 运行模拟器时,它正在使用 multiDex。 Prior 21 API 将仅使用发布版 APK 进行测试。
BTW APK 分析我的调试版本显示: classes.dex 54806 个方法 classes2.dex 1107 个方法 classes3.dex 6725 个方法
总数:62638。
当我禁用 multiDex 时。 无法将请求的类放入单个 dex 文件中(# 方法:73883 > 65536);))
有些不对劲;)
【问题讨论】: