Depuis la mise à niveau vers Android gradle plugin 3.0.1, l'erreur suivante apparaît:
Warning: Exception while processing task Java.io.IOException: Please correct the above warnings first.
: app: transformClassesAndResourcesWithProguardForProductionRelease FAILED
Le problème est: je ne vois aucun avertissement dans mon journal.
J'ai également exécuté la construction avec l'option -i et je reçois le journal suivant (gros): https://Gist.github.com/stoefln/b5e5e899c73b52d8065a5daeead716b3
Toutes les idées sont les bienvenues!
En effet, dans vos dépendances, il existe plusieurs dépendances implicites de rxjava avec une version différente.
À partir de ce journal:
Reading program jar [/Users/steph/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.2.5/b423532b5a3c949cbb799468f83bf566032fe98d/rxjava-1.2.5.jar] (filtered)
et
Reading library jar [/Users/steph/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.2.3/7fe1a94c1aeb958acc876fe616922cc191f3222c/rxjava-1.2.3.jar] (filtered)
Vous pouvez voir que dans votre application, il existe 2 versions de rxjava: 1.2.3 et 1.2.5
Une de vos dépendances, Android-rxlocationsettings, utilise rxjava 1.2.5, vous pouvez jeter un oeil à son build.gradle :
apply plugin: 'com.Android.library'
dependencies {
compile 'pl.charmas.Android:android-reactive-location:0.10@aar'
compile 'com.google.Android.gms:play-services-location:10.0.1'
compile 'com.Android.support:support-v4:25.0.1'
compile 'io.reactivex:rxjava:1.2.5'
}
Android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 14
}
}
Donc, vous devez l'exclure soit en utilisant exclure de dépendance:
dependencies {
...
compile ('com.github.jetradarmobile:Android-rxlocationsettings:1.1.0') {
exclude group: "io.reactivex", name: "rxjava"
}
...
}
ou en utilisant la configuration:
configurations.all {
exclude group: "io.reactivex", module:"rxjava"
}
J'ai eu un problème similaire, dans mon cas, j'ai vérifié les journaux pour les avertissements si vous trouvez un lié à la référence de classe, cela indique que vous devez nettoyer le projet.
exécuter gradlew clean
suivi de
construction graduelle
ou combiné gradlew clean build
utilisez simplement -dontwarn dans proguard-rules.pro comme ci-dessous
-dontwarn com.