最近,我将android studio更新为版本 2.2.2 ,并且gradle版本为 2.14.1 。
今天下午,我发现64K limit不是问题。我使用Android Studio生成一个apk并想体验APK Analyzer。当我用APK Analyzer打开apk时,我发现它有2个dex文件,classes.dex和classes2.dex。
我意识到我的项目超过了65536个方法引用。但是,我没有做任何事情来避免64K限制。 Android Studio只是帮助我们动态地完成它。在classes.dex文件中,我找到了multidex.class。这让我感到困惑,我做了一个测试:make' multiDexEnabled'假,并再次生成apk,仍然有apk中的2个dex文件。它表示属性" multiDexEnabled'不再起作用了。
我提供了2小时的信息,但没有得到多少。任何人都可以给我这个变化的官方文件吗?任何帮助都将不胜感激!
如果我错了,请提供您的测试结果和配置环境,再次感谢。
更新: 伙计们,这是我的错。在依赖库中有一个classes2.dex文件,工作室包在apk中。事实上,我的项目没有超过64k的限制。为了研究64k限制,我添加额外的librar超过64k限制。根据官方文档,我在build.gradle文件中设置了属性'multiDexEnabled',并添加了multidex支持库。
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 25
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:support-v4:24.2.1'
}
但是,multidex与support-v4冲突,其中包含与multidex相关的类。所以你应该删除这一行:
compile 'com.android.support:multidex:1.0.1'.
然后,它奏效了。我生成了一个带有.dex文件的apk:classes.dex和classes2.dex。现在,我遇到了另一个问题,工作室如何将dex文件分成2个文件?我将在另一个问题中讨论这个主题,谢谢大家,伙计们。