2011-11-15 18 views
1

私はガイドhereに従ってビルドの一環としてProguardをセットアップし、問題なく実行することができました。しかし、ADTツールの最新バージョンに更新して以来、私は問題を抱えています。私に実行する最初の問題がある:AndroidのProguardが壊れましたか?

BUILD FAILED 
/home/myhome/projects/myapp/add-proguard-release.xml:14: 
/home/myhome/projects/myapp/${out.classes.dir} does not exist. 

だからlocal.properties又はproject.propertiesのいずれかに手動で$ {out.classes.dir}を定義する必要が終わります。世界の終わりではなく、少しの痛みです。

第2の、より抜本的な問題は外部ジャーに関連しています。私は外の瓶に小さなクラスを持っています。アプリケーションは、デバイス上のアプリのクラッシュを起動すると:

11-15 18:35:30.090: E/AndroidRuntime(28258): java.lang.NoClassDefFoundError: com.mysoftware.informaltimeprovider.InformalTimeProvider 
11-15 18:35:30.090: E/AndroidRuntime(28258): at com.mysoftware.pagemonitor.PrintableTimeProvider.getInformalTime(PrintableTimeProvider.java:14) 

それはInformalTimeProviderのインスタンスを作成しようとするとクラッシュしているが、logcat出力によって判断すると、このクラスは、難読化されていなかったので、私は知りませんなぜ問題があるのか​​。

ビルド時の警告があります:

[proguard] Copying resources from program jar [/home/myhome/projects/pagemonitor/libs/InformalTimeProvider.jar] 
[proguard] Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [InformalTimeProvider.jar:META-INF/MANIFEST.MF]) 

しかし単なる警告である - 私はクラッシュを期待していません。

喜んでお寄せいただきありがとうございます。

バリー

+0

私はこれを手動でresplvedどのように伝えることができますか? /home/myhome/projects/myapp/${out.classes.dir}は存在しません。 – sheetal

+0

私は今チェックすることができませんが、私はその特定のプロジェクトのプロガードであきらめている気分を感じました:-( – barry

答えて

1

ProGuardのアプリは、ほとんどすぐに動作しない最小化。ほとんどの場合、保持する必要がある追加のクラスを手動で指定する必要があります。私はこの明示的に設定行に

-keep class com.mysoftware.informaltimeprovider.InformalTimeProvider 

を追加することによって開始する、あなたのケースで

は、このクラスが必要とされており、削除することはできませんProGuardのを伝えます。後であなたのアプリが別のクラスを見逃してしまった場合、proguardにもそれを保持するよう指示します。

ステップバイステップでは、完全に機能するアプリケーションに近づきます。私はこの試行錯誤のアプローチがうまくないのは分かっていますが、Java Appsの最適化はそれほど簡単ではなく、完全に自動化することができます。特に文字列やその他のランタイム関連のトリックによるクラスの読み込みは、プロガードと衝突します。

+0

ありがとうロバート、私はこれと遊びをします。 ? – barry

+0

これは、各ライブラリに独自のMANIFESTがあり、すべてのライブラリを1つのproguardにマージすれば、何をすべきか分からないためです。Proguardは遭遇したMANIFESTを保持しています。入力ジャーリストの最初の部分です – Robert

+0

ありがとうRobert。質問のいくつかは、どのようなマニフェストを保持したいと思うのですか?また、入力されたjarリストはどこですか?ありがとうございました – barry

関連する問題