web-dev-qa-db-ja.com

Proguard(Androidプロジェクト)による難読化から外部.jarを除外するにはどうすればよいですか?

Androidプロジェクトをproguard.cfgでエクスポートすると、参照されているすべての.jarファイルも難読化されます。その.jarの一部を難読化から除外するにはどうすればよいですか?

24
alex2k8

Antスクリプトを編集したくない場合は、それらの外部jar内のクラスのproguard.cfgに-keepオプションを追加できます。例えば:

-keep class othercode.** { *; }

または、否定子を含む正規表現を使用する場合:

-keep class !mycode.** { *; }

ただし、標準のAntスクリプトは、参照されているすべてのjarを単一の出力jarにマージします。

25
Eric Lafortune

構成ファイルで、jarを入力jarではなくライブラリjarとして設定します。これはそれらを手つかずのままにします。

-libjars <path/to/jars>
6
danh32

Proguardmavenプラグインを使用して私はそれをそのようにします

<inclusion>
   <groupId>foo.bar</groupId>
   <artifactId>foo-bar</artifactId>
   <library>true</library>
   <filter>!META-INF/**</filter>
</inclusion>

ザ・

<library>true</library> 

難読化後、外部jarが最終jarにマージされます。ただし、これによりマニフェストが上書きされる可能性があります。私はまだそれを回避する最善の方法を理解していません。

1
haferblues