2014-09-06 49 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

相關問題