有人能告诉我android 2.3中是否支持multi dex?
我已经四处寻找,但我无法找到相关信息。 我的项目具有与此类似的配置:https://github.com/mustafa01ali/MultiDexTest
项目构建没有问题,但最终的apk无法安装在2.3或更低版本的设备中。
安装时我收到错误
Failure [INSTALL_FAILED_DEXOPT]
在Android Studio中,它出现在logcat中:
E/dalvikvm﹕ LinearAlloc exceeded capacity (5242880), last=1384
W/installd﹕ DexInv: --- END '/data/app/xxx.apk' --- status=0x000b, process failed
E/installd﹕ dexopt failed on '/data/dalvik-cache/data@app@xxx.apk@classes.dex' res = 11
答案 0 :(得分:5)
你正在达到一个不同的大小限制(LinearAlloc),根据这个bug,multi-dex无法解决这个问题:
https://code.google.com/p/android/issues/detail?id=78035
来自该bug的评论#7:
dx中已有一个允许强制生成的选项 较小的dex文件: --set-max-idx-number =不幸的是,更改默认值不是解决方案,因为可以达到linearAlloc限制 不同的级别取决于类层次结构和其他 标准。
此外,对于大多数应用程序,转移到multidex只会有所帮助 解决安装的linearalloc限制。但是 应用程序仍然会在执行时遇到相同的限制。该 只有工作用例,我知道multidex可以帮助linearalloc 当apk不包含一个应用程序但不同的部分时 在单独的过程中运行。
至少从长远来看,目前尚不清楚你能做些什么来解决这个限制;您可能需要简化您的应用。这里有另一个StackOverflow问题,其中包含一些可能让您启动并运行的信息和一些解决方法,至少在一段时间内: