2

そのため、ADTの組み込みのプロガード実装をアプリで機能させようとしています。残念ながら、私が参照しているサードパーティのライブラリのさまざまなクラスで窒息しているようです。すべてではないにしても、さまざまな-libraryjarsと-keep public class lineの組み合わせを試してみましたが、それはまったく役に立たないことです。私はProguardの経験があまりないので、正直なところ、どこが間違っているのかわかりません。私はグーグルを試しましたが、ほとんどの情報はAntスクリプトに関連しています。

私が試したことのいくつか:

  • ファイルの上部または下部にある-libraryjarsC:\ Users \ Dave \ worksheet \ Dropbox_Sync_for_Tasker_and_Locale \ lib\apache-mime4j-0.6.jarのような行

  • そのようなjarファイルへのパスを比較的作成しようとしている行は、まったく成功しません。

  • -keep publicclassorg.apache.commons.logging.LogFactoryのような行

  • -keep public class org.apache.james.mime4j.field.MailboxListFieldなど、エラー行の他の部分を参照する行

とにかく、エラーログはテキストの巨大な壁なので、ここにペーストビンに入れました。

4

3 に答える 3

3

プロジェクトに「apache-mime4j-0.6.1.jar」と「httpmime-4.0.1.jar」を追加した後、まったく同じ問題が発生しました。(サーバーへのバイナリデータのマルチパート POST'ing 用)。

私はプロガードにも慣れていませんが、少なくともカスタムウィジェットをproguard.cfgに追加することができました-残念ながら、Apacheライブラリは追加がさらに難しいことがわかりました!

これは私の修正です...これを proguard.cfg の一番下に追加しました:

#APACHE LIBRARY
-libraryjars /libs/apache-mime4j-0.6.1.jar
-libraryjars /libs/httpmime-4.0.1.jar
-keepnames class org.apache.** {*;}
-keep public class org.apache.** {*;}
-dontwarn org.apache.commons.logging.LogFactory
-dontwarn org.apache.http.annotation.ThreadSafe
-dontwarn org.apache.http.annotation.Immutable
-dontwarn org.apache.http.annotation.NotThreadSafe

最初の4行が修正されることを望んでいました。残念ながら、実際に「修正」するには、ドントワーンが必要です。

私が間違っている場合は訂正してください (私は proGuard プロではないため)。ただし、最初の 4 行で、ライブラリがそのまま使用されることが保証されていると思います。4 行の 2 番目のセクション (dontwarn) は、残りのがらくたを覆い隠しているだけで、根本的な問題を修正していません。根本的な問題は何かわかりません。

于 2011-05-30T01:16:06.657 に答える
3

したがって、あなたがたまたまこの答えを見つけて、うーん、私もその問題を抱えているのなら、彼が彼の解決策を投稿してくれたらいいのにと思います。半分は幸運です。

私がそれを修正した方法は、 -libraryjars 行をそこに貼り付けてから、

-dontwarn org.apache.commons.logging.LogFactory
-dontwarn net.jcip.annotations.NotThreadSafe
-dontwarn net.jcip.annotations.ThreadSafe
-dontwarn net.jcip.annotations.Immutable

そして、それはうまくいきました。それはハックであり、汚れていますが、私にとっては解決しました。残念ながら、あなたもこの問題を抱えている場合、あなたはまだ独力です.

于 2011-02-09T21:57:13.633 に答える
0

commons-logging.jarをダウンロードしてライブラリに入れ-libraryjars、proguard config に追加してみてください。

于 2011-02-01T23:13:46.340 に答える