web-dev-qa-db-ja.com

ProGuardで-dontwarnを使用するには?

Android studioを使用して、デバッグおよびリリースアプリケーションをビルドしています。デバッグ/リリースアプリケーションをビルドするとき

./gradlew assembleDebug

./gradlew assembleRelease

両方のビルドが完全に作成され、同様に実行されます。デバッグまたはリリース用の適切なダイアログボックスを表示します

今、私はbuild.gradleにプロガードの詳細を追加しました:

signingConfigs {
    myConfig {
           storeFile file("keystore.jks")
           storePassword "abc123!"
           keyAlias "androidreleasekey"
           keyPassword "pqrs123!"
    }
}

buildTypes {
    release {
        runProguard true
        proguardFile getDefaultProguardFile('proguard-Android-optimize.txt')
        signingConfig signingConfigs.myConfig
    }
}
productFlavors {
    defaultFlavor {
        proguardFile 'proguard-rules.txt'
    }
}

これで、イベントログに次のエラーが表示されます。

警告:クラスまたはインターフェイスへの未解決の参照が7つありました。不足しているライブラリjarを追加するか、バージョンを更新する必要がある場合があります。欠落しているクラスがなくてもコードが正常に機能する場合、「-dontwarn」オプションを使用して警告を抑制することができます。 ( http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass

警告:プログラムクラスメンバーへの未解決の参照が2つありました。入力クラスが矛盾しているようです。コードを再コンパイルする必要がある場合があります。

http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember ):Flash Sales:proguardDefaultFlavorRelease FAILED

RunProguardオプションをfalseにすると、実行されます。

これらの質問があります:

1)runProguard = falseでapkをリリースしても大丈夫ですか?

2)リリースビルドの作成中にdontwarnを使用する方法は?

33
morya

私がプロジェクトに新しいライブラリを追加するとき、一般に、この方法をProgaurdに定義する必要があります。

Twitter4J libを使用していて、この方法でdontwarnを追加するとします。

-Twitter4jクラスを保持します。** {*; }

-dontwarn Twitter4j。​​*

27
swiftBoy

-dontwarn行をproguard-rules.proまたはproguard-rules.txtファイルに入れます。

回答にはこの情報が含まれていないため、他の場所でこれをグーグルで検索する必要がありました。ケースに必要な特定の行については、他の回答を確認してください。

0
JJ Du Plessis