2011-10-11 10 views
36

私はProguardを難読化のために主に使いたいと思っています。Proguardが外部ライブラリを無視する方法は?

私の問題は、私は3つのライブラリ、Twitter4Jと2つの標識のライブラリがあることです。署名されたAPKを作成しようとすると、これらのライブラリでエラーが発生しました。これを乗り越えるために、私は、これは、コンソールにエラーを処分したものの、私はそれがすぐに墜落した私の携帯電話に私の署名APKをロードしたとき、

-dontwarn org.apache.commons.codec.binary.** 
-dontwarn org.slf4j.** 
-dontwarn com.sun.syndication.io.** 
-dontwarn com.sun.syndication.feed.synd.* 

... proguard.configファイルに次のように置きます。 DDMSはこれがTwitter4Jにはないクラスのためだと言った。

上記の"dontwarns"を取り除くことは役に立たなかった。どちらもdontshrink dontoptimiseを追加しませんでした。

私はProguardがライブラリを完全に無視したいと思います(とにかくオープンソースなので)。これは可能ですか?

答えて

7

あなたはこの試しくださいすべてのパッケージ内のクラス(およびサブパッケージ)

-keep class org.apache.commons.codec.binary.** 
-keep interface org.apache.commons.codec.binary.** 
-keep enum org.apache.commons.codec.binary.** 
-keep class org.slf4j.** 
-keep interface org.slf4j.** 
-keep enum org.slf4j.** 
-keep class com.sun.syndication.io.** 
-keep interface com.sun.syndication.io.** 
-keep enum com.sun.syndication.io.** 
-keep class com.sun.syndication.feed.synd.** 
-keep interface com.sun.syndication.feed.synd.** 
-keep enum com.sun.syndication.feed.synd.** 
+0

こんにちは@Nic強く、返事のためのハンクス。私はコードを追加しましたが、署名されたAPKをエクスポートしようとしたときに、通常は "[2011-10-11 15:11:00 - canonV0003PRO]のような多くのエラーが発生しました警告:oauth.signpost.signature.OAuthMessageSigner: org.apache.commons.codec.binary.Base64 "他の提案は非常に感謝します。 Mel – Mel

+0

保存するパッケージのリストにoauth.signpost。**を追加しましたか? –

+0

@Melは答えを得ましたか?私は同じ問題に直面しています – sheetal

52

を除外するためにproguard.cfgに次の行を追加することができるはずです:@から

-keep class javax.** { *; } 
-keep class org.** { *; } 
-keep class twitter4j.** { *; } 

CfのポストをCaspNZ: Android Proguard with external jar

+0

これは、ありがとうございます。 – kodeshpa

+0

ありがとう!私はこの投稿を無視しましたが、私のエラーはこれで解決されないだろうと思っていましたが、何とかしました。私はちょうどプロガードの魔法を知らない... – Boy

+0

アンドロイドスタジオで@Boy plzが「proguard-project.txt」または「proguard-rules.pro」のいずれかの行を追加する場所 –

関連する問題