0

私のアプリケーションにはeventbusが使用されていますが、デュースモードでは問題なく動作しますが、リリースAPKでは動作しません。ProGuardのgreenrobotイベントバスの設定

ProGuardの設定のために使用される次のコード:

-keepattributes *Annotation* 
    -keepclassmembers class ** { 
    @org.greenrobot.eventbus.Subscribe <methods>; 
    } 
    -keep enum org.greenrobot.eventbus.ThreadMode { *; } 

すべての私の購読・アノテート方法も

Logcat出力公開されています:

は、イベントを送出しませんでした。 :クラス com。仮想メソッド を起動しようと「はjava.lang.String型com.dhaval:クラスクラス com.dhaval.example.view.activity.MainActivity java.lang.NullPointerExceptionが加入するdhaval.example.model.entity.response.DashboardUnreadStoryResponse .example.model.entity.Dashboard.ba() 'on nullオブジェクト参照 at com.dhaval.example.view.activity.MainActivity.b(SourceFile:150) at com.dhaval.example.view.activity (ソースファイル:485) at org.greenrobot.eventbus.ca (ソースファイル:251) 、org.greenrobot.eventbus.ca(ソースファイル:397) 、org.greenrobot.eventbus.ca(SourceFile:370) 、org.greenrobot.eventbus.cd(SourceFile:251) at com。 dhaval.example.view.ar $ 1.a(SourceFile:140) com.dhaval.example.view.ar $ 1.a(SourceFile:130) at com.dhaval.example.f.ap $ 2.a(SourceFile :90) com.dhaval.example.f.ap $ 2.a(SourceFile:85) at com.dhaval.example.network.a $ 1.a_(SourceFile:101) at rx.caa_(SourceFile: 134) rx.internal.operators.n $ aa(SourceFile:224) rx.abb $ b.runで(SourceFile:107) android.os.Handler.handleCallback(Handler.java:751) (android.os.Handler.dispatchMessage(Handler.java:95)) でandroid.os com.android.internalでjava.lang.reflect.Method.invoke(ネイティブメソッド) でandroid.app.ActivityThread.main(ActivityThread.java:6290) で.Looper.loop(Looper.java:154) 。 os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)07-14 11:39:43.640 16402-16402/com.dhaval .example D/EventBus:サブスクライバなし はイベントクラスorg.greenrobot.eventbus.jに登録されています。07-1 4 11:39:43.657 16402-16402/com.dhaval.example E/com.dhaval.example.view.ar $ 1:getResponseでエラーが発生しました: 仮想メソッドを呼び出す 'java.lang.String com.dhaval nullオブジェクト参照

+0

私はあまりにもイベントバスに関連していないようです。あなた自身のmodel.entity.DashboardクラスのNPEです。そのmodel.entity.Dashboardをproguard例外に追加する必要があるかもしれません:-keep class model.entity.Dashboard。** {*; } – shtolik

+0

しかし、この同じコードはデバッグapkに働いています –

+0

Ok。それは実際にgreenrobot proguard構成に関するものですか?これらのルールをリリースターゲットのファイルに適用してもよろしいですか?また、あなたのmodel.entity.Dashboard.ba()のチェックをチェックし、サブスクライバがヌルでない - それがNPEでクラッシュすることはありません(しかしおそらくまだ動作しません) – shtolik

答えて

1

上.example.model.entity.Dashboard.baは()」確かに関連ProGuardのように聞こえるが、おそらくないeventbus程度が、あなた自身のmodel.entity.Dashboardクラスについて。そのモデルを追加する必要があるかもしれません。プロバード例外にダッシュボード:

-keep class model.entity.Dashboard.** { *; } 
関連する問題