2015-08-17 30 views
2

我在我的gradle文件中使用支持庫中的渲染腳本。使用渲染腳本支持庫時獲取多個dex錯誤

renderscriptTargetApi 22 
    renderscriptSupportModeEnabled true 

後,我加入這兩條線,我得到這個錯誤

at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 
UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; 
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502) 
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 
at com.android.dx.command.dexer.Main.run(Main.java:277) 
at com.android.dx.command.dexer.Main.main(Main.java:245) 
at com.android.dx.command.Main.main(Main.java:106) 
Error:Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException:  
org.gradle.process.internal.ExecException: Process 'command 'C:\Program  
Files\Java\jdk1.8.0_25\bin\java.exe'' finished with non-zero exit value 2 

回答

8

我有類似的問題。嘗試添加到您的gradle這個文件

multiDexEnabled true 

只是要確定你是不是超過由Android(Java finished with non-zero exit value 2 - Android Gradle)所規定的65K方法DEX限制。如果您使用的是像程序兼容性或其他一些Android的支持庫設計或支持-V4/V7 ......另一條線添加到您的gradle這個文件

configurations { 
    all*.exclude group: 'com.android.support', module: 'support-annotations' 
} 

的renderScript庫已經包含了支持,註釋庫,然後可以碰撞與其他支持庫,我想。無論如何,這些gradle命令爲我解決了它。

編輯:它被認爲固定在Android支持庫的23.1.0版本中,因此在更新到23.1.0之後,您需要刪除所有* .exclude命令。否則,由於缺少支持註釋庫,您的應用程序將無法編譯。

+0

Thanka,它的工作 – chathura

0
dexOptions { 
    preDexLibraries = false 
} 

在你的build.gradle文件中嘗試加入你的Android塊內的下列塊。

+0

還沒有得到這個錯誤 – chathura

0

使用

renderscriptTargetApi 18 
renderscriptSupportModeEnabled true 
+1

這就要求你的最低sdk版本(minSdkVersion)也是18。這不適用於我,因爲我需要minSdkVersion 17. –