2010-12-17 9 views

答えて

24

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

-keep class othercode.** { *; } 

または否定子を含む正規表現を持つ:

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

標準のAntスクリプトはまだかかわらず、単一の出力jarファイル内のすべての参照のjarファイルをマージします。外部のjarファイルへ

+0

私もこのようにしました(ただし、keepclasseswithmembersクラスを使用してインターフェイスを維持しました)別の.jarファイルは異なるパッケージ名を持っていたので、私の場合は多かれ少なかれうまくいった... – alex2k8

+1

また、処理され、難読化されているようです。 – alex2k8

+0

@Ericは、「proguard-project.txt」または「proguard-rules.pro」のいずれかに、これらの行を追加するためのアンドロイドスタジオで返信してください。 –

6

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

-libjars <path/to/jars> 
+0

私は入力ジャーナルまたはライブラリジャーを設定しません。これは、プラットフォームのantスクリプトによって行われます。そのファイルを編集することは避けようとしています。 – alex2k8

1

その

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

ように私はそれを行うProGuardののMavenプラグインを使用して

<library>true></library> 

リードは、難読化した後、最終的なjarファイルにマージ。しかし、これにより、マニフェストが上書きされる可能性があります。私はまだその最良の方法を避ける方法を考え出していない。

関連する問題