Android gradle plugin 3.0.1にアップグレードしてから、次のエラーが表示されます。
Warning: Exception while processing task Java.io.IOException: Please correct the above warnings first.
:app:transformClassesAndResourcesWithProguardForProductionReleaseが失敗しました
問題は、ログに警告が表示されないことです。
また、-iフラグを使用してビルドを実行し、次の(大きな)ログを取得しています: https://Gist.github.com/stoefln/b5e5e899c73b52d8065a5daeead716b
どんなアイデアでも大歓迎です!
これは、依存関係に、バージョンが異なる複数のrxjava暗黙的依存関係があるためです。
このログから:
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)
そして
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)
アプリには、rxjavaの2つのバージョンがあることがわかります:1.2.3および1.2.5
依存関係の1つであるAndroid-rxlocationsettingsはrxjava 1.2.5を使用しているため、 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
}
}
そのため、依存関係からの除外を使用して、それを除外する必要があります。
dependencies {
...
compile ('com.github.jetradarmobile:Android-rxlocationsettings:1.1.0') {
exclude group: "io.reactivex", name: "rxjava"
}
...
}
または構成を使用して:
configurations.all {
exclude group: "io.reactivex", module:"rxjava"
}
これを試してください(それは私のために働いています)
私はプロガードにも問題がありますが、gitハブの次のコードがより便利であることがわかりました。
この行をproguard-rules.proに追加します
-dontoptimize
-dontpreverify
以下のようにproguard-rules.proで-dontwarnを使用するだけです
-dontwarn com。