2016-03-06 6 views
0

Я использую rxjava в своем приложении, он отлично работает, когда я тестирую, но когда я пытаюсь запустить подписанный файл apk на своих устройствах Android, приложение разбилось, когда дело доходит до кода rxjava , Я добавил это в правила proguard, но приложение все еще разбилось, у кого есть идея причины? Это информация о сбоях.Rxjava не работает после выпуска

java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType 
    at e.bb.c(Unknown Source) 
    at e.bb.(Unknown Source) 
    at e.ar.a(Unknown Source) 
    at e.ay.invoke(Unknown Source) 
    at $Proxy1.a(Native Method) 
    at com.kinnov.onlineordering.LoginFragment.a(Unknown Source) 
    at com.kinnov.onlineordering.LoginFragment.loginTapped(Unknown Source) 
    at com.kinnov.onlineordering.bq.doClick(Unknown Source) 
    at butterknife.internal.DebouncingOnClickListener.onClick(Unknown Source) 
    at android.view.View.performClick(View.java:4444) 
    at android.view.View$PerformClick.run(View.java:18440) 
    at android.os.Handler.handleCallback(Handler.java:733) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5052) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
    at dalvik.system.NativeStart.main(Native Method) 

это является Proguard-правила

-keep class rx.schedulers.Schedulers { 
    public static <methods>; 
} 
-keep class rx.schedulers.ImmediateScheduler { 
    public <methods>; 
} 
-keep class rx.schedulers.TestScheduler { 
    public <methods>; 
} 
-keep class rx.subscriptions.Subscriptions{ 
    public static <methods>; 
} 
-keep class rx.exceptions.Exceptions{ 
    public static <methods>; 
} 
-keep class rx.schedulers.Schedulers { 
    public static ** test(); 
} 
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { 
     long producerIndex; 
     long consumerIndex; 
     } 
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { 
     long producerNode; 
     long consumerNode; 
     } 
-keep class rx.operators.OperationReplay* { 
    *; 
} 

ответ

0

От https://github.com/artem-zinnatullin/RxJavaProGuardRules/blob/master/rxjava-proguard-rules/proguard-rules.txt

-dontwarn sun.misc.** 

-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { 
    long producerIndex; 
    long consumerIndex; 
} 

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { 
    rx.internal.util.atomic.LinkedQueueNode producerNode; 
} 

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { 
    rx.internal.util.atomic.LinkedQueueNode consumerNode; 
} 

Вы оставили из последнего правила я считаю.

Смежные вопросы