アプリケーションプロジェクトとそれが依存するライブラリプロジェクトの両方に同じルールを適用する必要があると仮定すると、proguard.cfgのコンテンツをアプリケーションからライブラリプロジェクトに複製する必要がありますか?
言い換えると、アプリケーションのproguard.cfgは、それが依存するすべてのライブラリプロジェクトを「引き継ぐ」のでしょうか、それとも各ライブラリプロジェクトのルールを明示的に指定する必要がありますか?
ライブラリプロジェクト自体はProGuardを実行しないため、構成を使用しません。
アプリケーションプロジェクトは、参照されるライブラリを含むコードベース全体を難読化するため、アプリケーションコードとライブラリコードを適切に構成する必要があります。
答えは「いいえ」のようです。Proguardはコードを難読化します ライブラリからも 。
しかし、それは2010年のことであり、特にAndroid開発ツールでは、仕様が変更され続けることをよく知っています。したがって、より信頼できる回答が得られれば、それを受け入れます。
ライブラリプロジェクトのbuild.gradleで、buildTypesに次の行を追加します:consumerProguardFiles 'proguard-rules.pro'
。
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro'
}
}
ルートプロジェクトのbuild.gradle
で、minifyEnabled
を有効にします。 librarayプロガードが機能します。