Prima di richiedere DUPLICATE si prega di leggere la domanda.Utilizzo di buildToolsVersion 23 non riesce perché più file dex definiscono 'AnimRes'
Questo si verifica solo con l'ultima versione degli strumenti di creazione. Le versioni precedenti non mostrano questo problema. Ho già provato le soluzioni offerte su altre domande qui per più definizioni di @AnimRes
. Nessuno mi ha aiutato finora, motivo per cui ho pubblicato una nuova domanda. Stessi sintomi, causa diversa, soluzione diversa.
posso costruire senza problemi quando si utilizzano buildToolsVersion 22.0.1
, ma quando posso passare al buildToolsVersion 23
la build non riesce con l'errore
IMPREVISTO TOP-LEVEL ECCEZIONE: com.android.dex.DexException: multipla file DEX definiscono Landroid/support/annotazione/AnimRes; a com.android.dx.merge.DexMerger.readSortableTypes (DexMerger.java:596) a com.android.dx.merge.DexMerger.getSortedTypes (DexMerger.java:554) a com.android.dx.merge. DexMerger.mergeClassDefs (DexMerger.java:535) su com.android.dx.merge.DexMerger.mergeDexes (DexMerger.java:171) su com.android.dx.merge.DexMerger.merge (DexMerger.java:189) a com.android.dx.command.dexer.Main.mergeLibraryDexBuffers (Main.java:502) a com.android.dx.command.dexer.Main.runMonoDex (Main.java:334) a com.android. dx.command.dexer.Main.run (Main.java:277) su com.android.dx.command.dexer.Main.main (Main.java:245) su com.android.dx.command.Main. main (Main.java:106)
Questa è una lista delle mie dipendenze:
provided 'org.projectlombok:lombok:1.16.4'
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:support-v13:23.0.0'
compile 'com.android.support:cardview-v7:23.0.0'
compile 'com.android.support:palette-v7:23.0.0'
compile 'com.google.code.findbugs:jsr305:2.0.1'
compile 'com.google.guava:guava:18.0'
compile 'com.github.chrisbanes.photoview:library:1.2.3'
compile 'org.apache.commons:commons-lang3:3.4'
compile 'commons-io:commons-io:2.4'
compile 'commons-codec:commons-codec:1.10'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.squareup:otto:1.3.8'
compile 'org.jsoup:jsoup:1.7.2'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.flaviofaria:kenburnsview:1.0.6'
compile 'com.edmodo:cropper:1.0.1'
compile 'com.getbase:floatingactionbutton:1.10.0'
compile 'com.nispok:snackbar:2.10.10'
compile 'com.github.ksoichiro:android-observablescrollview:1.5.2'
compile 'in.srain.cube:grid-view-with-header-footer:1.0.12'
compile 'de.hdodenhof:circleimageview:1.3.0'
per garantire a tutti (compresi Espresso) utilizza la stessa versione del support-annotations
Ho il seguente nel mio file di build:
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:23.0.0'
}
La rimozione di questo causerà altri errori.
Si tratta di un possibile errore negli strumenti di creazione o sto facendo qualcosa di sbagliato? Ho provato a impostare Incremental false
in dexOptions
. Non ha aiutato.
Utilizzando ./gradlew -q app:dependencies
ottengo il seguente:
+--- com.android.support:support-v4:23.0.0
| \--- com.android.support:support-annotations:23.0.0
+--- com.android.support:appcompat-v7:23.0.0
| \--- com.android.support:support-v4:23.0.0 (*)
+--- com.android.support:support-v13:23.0.0
| \--- com.android.support:support-v4:23.0.0 (*)
+--- com.android.support:cardview-v7:23.0.0
+--- com.android.support:palette-v7:23.0.0
| \--- com.android.support:support-v4:23.0.0 (*)
+--- com.google.code.findbugs:jsr305:2.0.1
+--- com.google.guava:guava:18.0
+--- com.github.chrisbanes.photoview:library:1.2.3
| \--- com.android.support:support-v4:19.+ -> 23.0.0 (*)
+--- org.apache.commons:commons-lang3:3.4
+--- commons-io:commons-io:2.4
+--- commons-codec:commons-codec:1.10
+--- com.jakewharton:butterknife:7.0.1
+--- com.squareup:otto:1.3.8
+--- org.jsoup:jsoup:1.7.2
+--- com.squareup.picasso:picasso:2.5.2
+--- com.squareup.retrofit:retrofit:1.9.0
| \--- com.google.code.gson:gson:2.3.1
+--- com.squareup.okhttp:okhttp:2.4.0
| \--- com.squareup.okio:okio:1.4.0 -> 1.5.0
+--- com.squareup.okhttp:okhttp-urlconnection:2.4.0
| \--- com.squareup.okhttp:okhttp:2.4.0 (*)
+--- com.squareup.okio:okio:1.5.0
+--- com.flaviofaria:kenburnsview:1.0.6
+--- com.edmodo:cropper:1.0.1
+--- com.getbase:floatingactionbutton:1.10.0
| \--- com.android.support:support-annotations:22.2.0 -> 23.0.0
+--- com.nispok:snackbar:2.10.10
| +--- com.android.support:recyclerview-v7:22.0.0
| | +--- com.android.support:support-v4:22.0.0 -> 23.0.0 (*)
| | \--- com.android.support:support-annotations:22.0.0 -> 23.0.0
| \--- com.android.support:support-annotations:22.0.0 -> 23.0.0
+--- com.github.ksoichiro:android-observablescrollview:1.5.2
| \--- com.android.support:recyclerview-v7:21.0.0 -> 22.0.0 (*)
+--- in.srain.cube:grid-view-with-header-footer:1.0.12
\--- de.hdodenhof:circleimageview:1.3.0
"la compilazione fallisce con l'errore" - ci dovrebbero essere più informazioni nella Gradle Console su dove provengono i duplicati. – CommonsWare
Non dice quali entità definiscono '@ AnimRes'. Ora sto forzando tutte le librerie di supporto ad usare '23.0.0' e continuano a fallire allo stesso modo. – copolii
Quello che Commons sta dicendo è che vedrete più informazioni se si esegue gradle dalla console (ad esempio 'gradlew assembleDebug'). –