Proguard で難読化されたリリース apk を作成しています。最初の 2 つのルールを追加して、logcat が吐き出す可能性のあるエラーをデコードできるようにしました。
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keep @io.realm.annotations.RealmModule class *
-dontwarn javax.**
-dontwarn io.realm.**
-dontwarn rx.internal.**
#Butterknife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}
#EventBus
-keepclassmembers class ** {
public void onEvent*(**);
}
#JodaTime
-dontwarn org.joda.convert.**
-dontwarn org.joda.time.**
-keep class org.joda.time.** { *; }
-keep interface org.joda.time.** { *; }
アプリのクラッシュ時のエラーは次のとおりです。
AndroidRuntime:Error at com.example.app.e.b.a(SourceFile:65)
AndroidRuntime:Error at com.example.app.e.b.doInBackground(SourceFile:21)
最初の 2 つのルールは、実際の行番号を表示するのに役立ちましたが、'eba' と 'eb' が何を示唆しているのかを理解するのに苦労しています。どんな助けでも大歓迎です。
編集:
ReTrace ツールを使用した後、次のメッセージが表示されました。
07-30 13:38:44.886 E/AndroidRuntime(5563): Process: com.example.app, PID: 5563
07-30 13:38:44.886 E/AndroidRuntime(5563): at com.example.app.e.c$a.a(SourceFile:266)
07-30 13:38:44.886 E/AndroidRuntime(5563): at com.example.app.e.c$a.doInBackground(SourceFile:250)
07-30 13:38:44.886 E/ActivityManager(1173): App crashed! Process: com.example.app