web-dev-qa-db-ja.com

Android Proguard警告:リソースを書き込めません(Zipエントリが重複しています)

私はproguardを有効にして、次のことを取得しました。

Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-io-2.4.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [commons-io-2.4.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-collections-3.2.1.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [commons-collections-3.2.1.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [joda-time-2.7-no-tzdb.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [joda-time-2.7-no-tzdb.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-primitives-1.0.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/services/javax.annotation.processing.Processor] (Duplicate Zip entry [icepick-processor-2.3.6.jar:META-INF/services/javax.annotation.processing.Processor])
Warning:can't write resource [.readme] (Duplicate Zip entry [classes.jar:.readme])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate Zip entry [commons-lang-2.6.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate Zip entry [commons-lang-2.6.jar:META-INF/NOTICE.txt])

どういう意味ですか?ここのようなものを除外する必要がありますか?

configurations {
    all*.exclude group: 'commons-logging', module: 'commons-logging'
}
19

重複ファイルのあるライブラリを使用していますが、これはgradleのバグです。解決するには、プロジェクトbuild.gradleでこれを使用してください。

Android {
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude '.readme'
    }
}
30
Santiago

から Proguardマニュアル

警告:リソースを書き込めません... Zipエントリが重複しています

入力jarには、同じ名前の複数のリソースファイルが含まれています。 ProGuardは、以前に使用された名前のファイルをスキップして、通常どおりリソースファイルのコピーを続行します。繰り返しになりますが、警告は何らかの問題を示している可能性があるため、重複を削除することをお勧めします。これを行う便利な方法は、入力jarにフィルターを指定することです。これらの警告をオフにするオプションはありません。

標準のAndroidビルドプロセスは、入力jarを自動的に指定します。これらの警告を削除するためにそれらをフィルタリングする簡単な方法がない場合があります。重複するリソースを削除できます。入力とライブラリから手動でファイルします。

オプションの追加-ignorewarningsproguard構成ファイルで私のために働いた。それでも「META-INF/LICENSE.txt」に対して警告が表示されますが、ビルドは失敗しません。ただし、このオプションは、その効果が確実な場合にのみ使用してください。詳細については、 http://proguard.sourceforge.net/manual/usage.html#ignorewarnings をフォローしてください。

0