web-dev-qa-db-fra.com

Erreur Proguard: "Exception lors du traitement de la tâche Java.io.IOException: corrigez d'abord les avertissements ci-dessus"

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!

6
stoefln

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

Échec de construction

Avertissements à surveiller

0
Sfiso Collen

utilisez simplement -dontwarn dans proguard-rules.pro comme ci-dessous

-dontwarn com.