2014-09-06 51 views
0

我的应用程序最近达到了64k的限制。在DX批处理文件Android gradle DexException:多重dex模式不支持库dex文件

exec java $javaOpts -jar "$jarpath" --multi-dex "[email protected]" 

: 我试图通过添加创建使用--multidex选择多个dexes。

在构建过程中成功但在运行的应用程序 它给DexException完成:图书馆DEX文件在多DEX模式,不支持

现在这是什么意思?我搜索了谷歌,但没有找到有用的东西。

回答

3

--multi-dex选项与pre-dexing库项目不兼容。因此,如果您的应用使用库项目,则需要disable pre-dexing,然后才能使用--multi-dex

这就是说,我不知道为什么在运行时发生这种情况。这显然是dx工具暴露的构建时间故障。也许发生在你身上的是应用程序的某些部分在从IDE运行时重建,触发构建错误。

+0

谢谢你的答案,但你能解释更多关于预先dexed图书馆项目。我在应用程序中使用了很多库jar,所以库jar和pre-dexed库项目之间有什么区别? 什么是预先dexed库项目? – userv 2014-09-25 17:50:46

+1

我的答案中的链接实际上很好地解释了它:预分离将JVM转换为库jar的Dalvik字节码。由于库jars通常比应用程序的代码更少,所以在重新构建应用程序时,可以重新使用预先dexed的库,并且只有应用程序的代码需要重新排序。这种预先dexed库有助于加速增量构建。然而,正如链接文章中所解释的那样,干净的版本在不进行预先分解的情况下稍快一些,因为最终只需要一次。 – sschuberth 2014-09-25 18:47:56

相关问题