chathura
chathura

Reputation: 3452

Getting Multiple dex error when using render script support lib

I am using render script in support library in my gradle file.

  renderscriptTargetApi 22
  renderscriptSupportModeEnabled true

After I added these 2 lines, I am getting this error

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

Upvotes: 2

Views: 868

Answers (4)

Luboš Staráček
Luboš Staráček

Reputation: 907

I've had similar issue. Try add to your gradle file

multiDexEnabled true

just to be sure you are not exceeding the 65K methods dex limit imposed by Android (Java finished with non-zero exit value 2 - Android Gradle). If you are using some other android-support libraries like appcompat or design or support-v4/v7... add another line to your gradle file

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

Renderscript library already includes support-annotations library, which then may collide with those other support libraries, I suppose. Anyway, these gradle commands fixed it for me.

Edit: It was supposedly fixed in 23.1.0 revisions of Android support libraries, therefore after updating to 23.1.0 you'd need to remove that all*.exclude command. Otherwise your app would not compile due to missing support-annotations library.

Upvotes: 8

Settembrini
Settembrini

Reputation: 1386

Use

 renderscriptTargetApi 18
 renderscriptSupportModeEnabled true

Upvotes: 0

Stephen Hines
Stephen Hines

Reputation: 2622

https://code.google.com/p/android/issues/detail?id=181697 is the bug for this, along with a temporary workaround.

Upvotes: 2

RamBabu Pudari
RamBabu Pudari

Reputation: 912

  dexOptions {
  preDexLibraries = false
}

In your build.gradle file try adding the following block inside your android block.

Upvotes: 0

Related Questions