使用渲染脚本支持lib时出现多个dex错误

cha*_*ura 2 android renderscript android-support-library

我在gradle文件中使用支持库中的渲染脚本.

  renderscriptTargetApi 22
  renderscriptSupportModeEnabled true
Run Code Online (Sandbox Code Playgroud)

添加这两行后,我收到此错误

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
Run Code Online (Sandbox Code Playgroud)

小智 8

我有类似的问题.尝试添加到您的gradle文件

multiDexEnabled true
Run Code Online (Sandbox Code Playgroud)

只是为了确保你没有超过Android强加的65K方法dex限制(Java完成非零退出值2 - Android Gradle).如果您正在使用其他一些Android支持库,如appcompat或design或support-v4/v7 ...请在gradle文件中添加另一行

configurations {
    all*.exclude group: 'com.android.support', module: 'support-annotations'
}
Run Code Online (Sandbox Code Playgroud)

Renderscript库已经包含了support-annotations库,我想这可能会与其他支持库发生冲突.无论如何,这些gradle命令为我修复了它.

编辑:据说修复了Android支持库的23.1.0版本,因此在更新到23.1.0之后,您需要删除所有*.exclude命令.否则,由于缺少support-annotations库,您的应用程序将无法编译.