Приложението за Android се срива при Release Build с използването на Proguard и Dagger

Нов съм в използването на Proguard и Dagger за приложения за Android, така че наистина ще съм благодарен, ако някой може да ми даде няколко насоки.

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

но изглежда не решава проблема. Предложения? Благодаря предварително.


person ShannonS    schedule 28.02.2013    source източник


Отговори (3)


Proguard и (предварителната) компилация на dagger не изглежда да работят добре заедно в версиите на версията. Вижте https://plus.google.com/117210567825404150882/posts/HGjnJJHbfMj

„Проблемът“ е, че не-обфусцираните имена на пакети ще бъдат компилирани в класовете.

person Jörg    schedule 21.03.2013

Добавихте ли това в конфигурационния файл на proguard?

-keepattributes *Annotation*
person hungr    schedule 14.03.2013

Разгледайте https://stackoverflow.com/a/18109765/654026 в случай, че ви помогне. Там ще видите някои подробности относно конфигурацията на proguard за моето приложение, което ми позволи да пропусна сривовете на приложението, когато използвам Dagger.

person David Santiago Turiño    schedule 09.08.2013