12

まず、このトピックに回答があった場合は申し訳ありませんが、見つかりませんでした...

AndroidとProguardは初めてです。もちろん、アプリケーションの開発の最後に、プロガードを使用してサイズを縮小したいと考えています。アプリケーションで Google API クライアントのライブラリを使用しているため、それらを外部 jar として追加しました。

さて、私のアプリはプロガードステップを通過しなくても問題なく動作していますが、エクスポートしようとすると頭痛が始まります。スキップやアレンジの仕方がわからない注意点がたくさん。このようなもの:

[2012-03-05 07:20:06 - CollaJoveThreads] Proguard returned with error code 1. See console
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable

そしてもっと似ています。

Google 開発者の推奨事項に従い、次の行を proguard.cfg に追加しました。

# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keepclassmembers class * {
  @com.google.api.client.util.Key <fields>;
}

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault,*Annotation*

-dontwarn sun.misc.Unsafe

しかし、これらすべての警告メッセージが引き続き表示されます。「-dontwarn」オプションを使用しようとすると、アプリがクラッシュします。

私はこれらの質問などを読みました:

誰でも助けることができますか?

4

1 に答える 1

16

jsr305こんにちは、プロジェクトにjarファイルを追加することで、これはすでに解決されていることを知っています。しかし、この瓶がどこにあるのか、どうすればよいのかを理解するのにしばらく時間がかかりました。

この jar の最新バージョンは、こちらで入手できます。最新の jar をダウンロードしてフォルダーに配置し、それを Eclipse のビルド パスlibsに追加すると、すべて問題なく動作するはずです。

これにより、私の問題もすべて修正されました。

于 2012-06-20T07:00:44.730 に答える