7

私はAndroidアプリでProguardとDaggerを使用するのは初めてなので、誰かが私にいくつかの指針を教えてくれれば本当にありがたいです。

ProguardとDaggerがアプリケーションに実装されました。アプリがデバッグモードでインストールされている場合(つまり、Eclipseからプッシュされている場合)、アプリの実行に問題はありません。ただし、アプリのリリースビルドを実行すると、次のトレースでクラッシュします。

No injectable members on com.example.test.d. Do you want to add an injectable constructor? required by com.example.test.d com.example.test.SampleActivity.a
No injectable members on com.b.a.b. Do you want to add an injectable constructor? required by com.b.a.b com.example.test.SampleActivity.b
    at dagger.internal.h.a(ThrowingErrorHandler.java:34)
    at dagger.internal.Linker.a(Linker.java:136)
    at dagger.d.a(ObjectGraph.java:264)
    at dagger.d.a(ObjectGraph.java:238)
    at com.example.test.SampleApplication.a(SampleApplication.java:24)

私は、https ://plus.google.com/108620120050432268974/posts/AAjvwg3Hmggからの提案に従い、proguard-project.txtに以下を実装しました。

-keep class * extends dagger.internal.Binding
-keep class * extends dagger.internal.ModuleAdapter
-keep class * extends dagger.internal.StaticInjection

しかし、それは問題を解決していないようです。提案?前もって感謝します。

4

3 に答える 3

2

プロガードとダガー(プレ)-コンパイルはリリースビルドではうまく機能しないようです。https://plus.google.com/117210567825404150882/posts/HGjnJJHbfMjを参照して ください

「問題」は、難読化されていないパッケージ名がクラスにコンパイルされることです。

于 2013-03-21T21:50:01.897 に答える
0

これをproguard構成ファイルに追加しましたか?

-keepattributes *Annotation*
于 2013-03-14T10:21:46.247 に答える
0

それがあなたを助ける場合に備えて、 https://stackoverflow.com/a/18109765/654026を見てください。Daggerを使用しているときにアプリのクラッシュをスキップできるようにした、アプリのプロガード構成の詳細が表示されます。

于 2013-08-09T14:58:02.060 に答える