web-dev-qa-db-ja.com

ライブラリプロジェクトにはproguard.cfgが必要ですか?

アプリケーションプロジェクトとそれが依存するライブラリプロジェクトの両方に同じルールを適用する必要があると仮定すると、proguard.cfgのコンテンツをアプリケーションからライブラリプロジェクトに複製する必要がありますか?

言い換えると、アプリケーションのproguard.cfgは、それが依存するすべてのライブラリプロジェクトを「引き継ぐ」のでしょうか、それとも各ライブラリプロジェクトのルールを明示的に指定する必要がありますか?

33
Regex Rookie

ライブラリプロジェクト自体はProGuardを実行しないため、構成を使用しません。

アプリケーションプロジェクトは、参照されるライブラリを含むコードベース全体を難読化するため、アプリケーションコードとライブラリコードを適切に構成する必要があります。

99
Eric Lafortune

答えは「いいえ」のようです。Proguardはコードを難読化します ライブラリからも

しかし、それは2010年のことであり、特にAndroid開発ツールでは、仕様が変更され続けることをよく知っています。したがって、より信頼できる回答が得られれば、それを受け入れます。

4
Regex Rookie
  1. ライブラリプロジェクトのbuild.gradleで、buildTypesに次の行を追加します:consumerProguardFiles 'proguard-rules.pro'

    buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        consumerProguardFiles 'proguard-rules.pro'
    }
    

    }

  2. ルートプロジェクトのbuild.gradleで、minifyEnabledを有効にします。 librarayプロガードが機能します。

0
etahudu