我知道如何启用MultiDex支持,但我的问题是相反的。似乎我的Android Studio的MultiDex选项默认已启用。当我解压APK文件并检查内部时,发现有两个文件:classes.dex和classes2.dex。你可能会说我的项目可能达到64K的限制,但事实并非如此。我还尝试了没有任何依赖项和其他gradle设置,但结果都一样。我甚至加入了代码“multiDexEnabled false”,但也没有帮助。所以这次我创建了另一个新的空项目,并按下“运行”按钮,没有做任何修改。结果?一样。
正如你所看到的,我有两个.dex文件,引用量非常低。
我不明白这里发生了什么...
我试图禁用MultiDex的原因是:
首先,我的应用程序非常简单,只有几个依赖项,所以不需要它。
其次,应用程序需要支持甚至更旧的Android操作系统。
第三,我想避免在旧的Android设备中出现Dalvik linearAlloc限制。
最后,我想知道这个问题的确切原因。
还有一个有趣的事实。我反编译并查看了apk文件,但找不到默认情况下在我的手机上运行时创建的名为MainActivity的类。 对于我的真实项目也是如此。应用程序运行良好,但classes*.dex中没有我的代码。如果应用程序没有任何问题,则可以忽略,但有时我想反编译并查看生成的代码,这有点烦人。
我试图禁用MultiDex的原因是:
首先,我的应用程序非常简单,只有几个依赖项,所以不需要它。
其次,应用程序需要支持甚至更旧的Android操作系统。
第三,我想避免在旧的Android设备中出现Dalvik linearAlloc限制。
最后,我想知道这个问题的确切原因。
还有一个有趣的事实。我反编译并查看了apk文件,但找不到默认情况下在我的手机上运行时创建的名为MainActivity的类。 对于我的真实项目也是如此。应用程序运行良好,但classes*.dex中没有我的代码。如果应用程序没有任何问题,则可以忽略,但有时我想反编译并查看生成的代码,这有点烦人。
minSdkVersion
21,空活动,没有appcompat-v7
),通过主菜单的Build > Build APK(s)构建APK,但我无法重现你的问题。我将minSdkVersion
更改为9,但仍无法重现该问题。尝试使用Build > Build APK(s)而不是Run,看看是否会改变你的行为。 - CommonsWare