2

After upload APK to google playstore, from Crashlytics I got crash in file ActivityThread.java line 2423: android.app.ActivityThread.handleReceiver. This error just appeared in Android KitKat (4.4.4). Until now I don't know how to reproduce this error in debug mode.

Fatal Exception: java.lang.IllegalAccessError: tried to access method com.google.android.gms.internal.eo.ak:(Lcom/google/android/gms/internal/fa;)V from class com.google.android.gms.internal.ej
   at com.google.android.gms.internal.zzaue.(Unknown Source)
   at com.google.android.gms.internal.zzaui.zzMO(Unknown Source)
   at com.google.android.gms.internal.zzaue.zzbM(Unknown Source)
   at com.google.android.gms.internal.zzaub.onReceive(Unknown Source)
   at com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver.onReceive(Unknown Source)
   at android.app.ActivityThread.handleReceiver(ActivityThread.java:2423)
   at android.app.ActivityThread.access$1700(ActivityThread.java:141)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1288)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5113)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
   at dalvik.system.NativeStart.main(NativeStart.java)

this is my gradle imports:

ext.supportLibrary = '25.3.0'
ext.firebaseLibrary = '10.2.0'
ext.butterLibrary = '8.5.1'
ext.retrofitLibrary = '2.2.0'
ext.circleImageLibrary = '2.1.0'
ext.picassoLibrary = '2.5.2'
ext.gsonLibrary = '2.7'
ext.eventbusLibrary = '3.0.0'
ext.okhttpLibrary = '3.6.0'
ext.facebookLibrary = '4.20.0'

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
}
compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
    transitive = true;
}
//answers fabric
compile('com.crashlytics.sdk.android:answers:1.3.10@aar') {
    transitive = true;
}
compile "com.facebook.android:facebook-android-sdk:$facebookLibrary"
compile "com.android.support:design:$supportLibrary"
compile "com.android.support:customtabs:$supportLibrary"
compile "com.android.support:support-v4:$supportLibrary"
compile "com.android.support:cardview-v7:$supportLibrary"
compile "com.android.support:appcompat-v7:$supportLibrary"
compile "com.android.support:recyclerview-v7:$supportLibrary"
compile "com.google.android.gms:play-services-auth:$firebaseLibrary"
compile "com.google.firebase:firebase-core:$firebaseLibrary"
compile "com.google.firebase:firebase-messaging:$firebaseLibrary"
compile "com.jakewharton:butterknife:$butterLibrary"
compile "com.google.code.gson:gson:$gsonLibrary"
compile "org.greenrobot:eventbus:$eventbusLibrary"
compile "de.hdodenhof:circleimageview:$circleImageLibrary"
compile "com.squareup.picasso:picasso:$picassoLibrary"
compile "com.squareup.retrofit2:retrofit:$retrofitLibrary"
compile "com.squareup.retrofit2:converter-gson:$retrofitLibrary"
compile "com.squareup.retrofit2:converter-moshi:$retrofitLibrary"
compile "com.squareup.retrofit2:adapter-rxjava:$retrofitLibrary"
compile "com.squareup.okhttp3:logging-interceptor:$okhttpLibrary"
testCompile 'junit:junit:4.12'
annotationProcessor "com.jakewharton:butterknife-compiler:$butterLibrary"

Output gradlew dependencies

------------------------------------------------------------        
Project :app        
------------------------------------------------------------        

compile - Classpath for compiling the main sources.        
+--- com.crashlytics.sdk.android:crashlytics:2.6.5        
|    +--- com.crashlytics.sdk.android:beta:1.2.2        
|    |    \--- io.fabric.sdk.android:fabric:1.3.13 -> 1.3.14        
|    +--- com.crashlytics.sdk.android:crashlytics-core:2.3.14        
|    |    +--- com.crashlytics.sdk.android:answers:1.3.10        
|    |    |    \--- io.fabric.sdk.android:fabric:1.3.14        
|    |    \--- io.fabric.sdk.android:fabric:1.3.14        
|    +--- com.crashlytics.sdk.android:answers:1.3.10 (*)        
|    \--- io.fabric.sdk.android:fabric:1.3.14        
+--- com.crashlytics.sdk.android:answers:1.3.10 (*)        
+--- com.facebook.android:facebook-android-sdk:4.20.0        
|    +--- com.android.support:support-v4:25.0.0 -> 25.3.0        
|    |    +--- com.android.support:support-compat:25.3.0        
|    |    |    \--- com.android.support:support-annotations:25.3.0        
|    |    +--- com.android.support:support-media-compat:25.3.0        
|    |    |    +--- com.android.support:support-annotations:25.3.0        
|    |    |    \--- com.android.support:support-compat:25.3.0 (*)        
|    |    +--- com.android.support:support-core-utils:25.3.0        
|    |    |    +--- com.android.support:support-annotations:25.3.0        
|    |    |    \--- com.android.support:support-compat:25.3.0 (*)        
|    |    +--- com.android.support:support-core-ui:25.3.0        
|    |    |    +--- com.android.support:support-annotations:25.3.0        
|    |    |    \--- com.android.support:support-compat:25.3.0 (*)        
|    |    \--- com.android.support:support-fragment:25.3.0        
|    |         +--- com.android.support:support-compat:25.3.0 (*)        
|    |         +--- com.android.support:support-media-compat:25.3.0 (*)        
|    |         +--- com.android.support:support-core-ui:25.3.0 (*)        
|    |         \--- com.android.support:support-core-utils:25.3.0 (*)        
|    +--- com.android.support:appcompat-v7:25.0.0 -> 25.3.0        
|    |    +--- com.android.support:support-annotations:25.3.0        
|    |    +--- com.android.support:support-v4:25.3.0 (*)        
|    |    +--- com.android.support:support-vector-drawable:25.3.0        
|    |    |    +--- com.android.support:support-annotations:25.3.0        
|    |    |    \--- com.android.support:support-compat:25.3.0 (*)        
|    |    \--- com.android.support:animated-vector-drawable:25.3.0        
|    |         \--- com.android.support:support-vector-drawable:25.3.0 (*)        
|    +--- com.android.support:cardview-v7:25.0.0 -> 25.3.0        
|    |    \--- com.android.support:support-annotations:25.3.0        
|    +--- com.android.support:customtabs:25.0.0 -> 25.3.0        
|    |    +--- com.android.support:support-compat:25.3.0 (*)        
|    |    \--- com.android.support:support-annotations:25.3.0        
|    \--- com.parse.bolts:bolts-android:1.4.0        
|         +--- com.parse.bolts:bolts-tasks:1.4.0        
|         \--- com.parse.bolts:bolts-applinks:1.4.0        
|              \--- com.parse.bolts:bolts-tasks:1.4.0        
+--- com.android.support:design:25.3.0        
|    +--- com.android.support:support-v4:25.3.0 (*)        
|    +--- com.android.support:appcompat-v7:25.3.0 (*)        
|    +--- com.android.support:recyclerview-v7:25.3.0        
|    |    +--- com.android.support:support-annotations:25.3.0        
|    |    +--- com.android.support:support-compat:25.3.0 (*)        
|    |    \--- com.android.support:support-core-ui:25.3.0 (*)        
|    \--- com.android.support:transition:25.3.0        
|         +--- com.android.support:support-annotations:25.3.0        
|         \--- com.android.support:support-v4:25.3.0 (*)        
+--- com.android.support:customtabs:25.3.0 (*)        
+--- com.android.support:support-v4:25.3.0 (*)        
+--- com.android.support:cardview-v7:25.3.0 (*)        
+--- com.android.support:appcompat-v7:25.3.0 (*)        
+--- com.android.support:recyclerview-v7:25.3.0 (*)        
+--- com.google.android.gms:play-services-auth:10.2.0        
|    +--- com.google.android.gms:play-services-auth-base:10.2.0        
|    |    +--- com.google.android.gms:play-services-base:10.2.0        
|    |    |    +--- com.google.android.gms:play-services-basement:10.2.0        
|    |    |    |    \--- com.android.support:support-v4:24.0.0 -> 25.3.0 (*)        
|    |    |    \--- com.google.android.gms:play-services-tasks:10.2.0        
|    |    |         \--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|    |    \--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|    +--- com.google.android.gms:play-services-base:10.2.0 (*)        
|    +--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|    \--- com.google.android.gms:play-services-tasks:10.2.0 (*)        
+--- com.google.firebase:firebase-core:10.2.0        
|    \--- com.google.firebase:firebase-analytics:10.2.0        
|         +--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|         +--- com.google.firebase:firebase-common:10.2.0        
|         |    +--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|         |    \--- com.google.android.gms:play-services-tasks:10.2.0 (*)        
|         \--- com.google.firebase:firebase-analytics-impl:10.2.0        
|              +--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|              +--- com.google.firebase:firebase-iid:10.2.0        
|              |    +--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|              |    \--- com.google.firebase:firebase-common:10.2.0 (*)        
|              +--- com.google.firebase:firebase-common:10.2.0 (*)        
|              \--- com.google.android.gms:play-services-tasks:10.2.0 (*)        
+--- com.google.firebase:firebase-messaging:10.2.0        
|    +--- com.google.android.gms:play-services-basement:10.2.0 (*)        
|    +--- com.google.firebase:firebase-iid:10.2.0 (*)        
|    \--- com.google.firebase:firebase-common:10.2.0 (*)        
+--- com.jakewharton:butterknife:8.5.1        
|    +--- com.jakewharton:butterknife-annotations:8.5.1        
|    |    \--- com.android.support:support-annotations:25.1.0 -> 25.3.0        
|    +--- com.android.support:support-annotations:25.1.0 -> 25.3.0        
|    \--- com.android.support:support-compat:25.1.0 -> 25.3.0 (*)        
+--- com.google.code.gson:gson:2.7        
+--- org.greenrobot:eventbus:3.0.0        
+--- de.hdodenhof:circleimageview:2.1.0        
+--- com.squareup.picasso:picasso:2.5.2        
+--- com.squareup.retrofit2:retrofit:2.2.0        
|    \--- com.squareup.okhttp3:okhttp:3.6.0        
|         \--- com.squareup.okio:okio:1.11.0        
+--- com.squareup.retrofit2:converter-gson:2.2.0        
|    +--- com.squareup.retrofit2:retrofit:2.2.0 (*)        
|    \--- com.google.code.gson:gson:2.7        
+--- com.squareup.retrofit2:converter-moshi:2.2.0        
|    +--- com.squareup.retrofit2:retrofit:2.2.0 (*)        
|    \--- com.squareup.moshi:moshi:1.4.0        
|         \--- com.squareup.okio:okio:1.11.0        
+--- com.squareup.retrofit2:adapter-rxjava:2.2.0        
|    +--- com.squareup.retrofit2:retrofit:2.2.0 (*)        
|    \--- io.reactivex:rxjava:1.2.0        
\--- com.squareup.okhttp3:logging-interceptor:3.6.0        
     \--- com.squareup.okhttp3:okhttp:3.6.0 (*)        

(*) - dependencies omitted (listed previously)        

BUILD SUCCESSFUL        

Total time: 1 mins 23.3 secs        

And here my proguard files:

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }

# navigationview
#sumber: https://code.google.com/p/android/issues/detail?id=190250
-keep class android.support.v7.widget.LinearLayoutManager { *; } 

# Android Support Design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }
-keep class android.support.v7.widget.SearchView { *; }

#facebook
-keep class com.facebook.** { *; }
-keepattributes Signature

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

#crashlytics
-keep class com.crashlytics.** { *; }
-keep class com.crashlytics.android.**
-keepattributes SourceFile, LineNumberTable, *Annotation*

# If you are using custom exceptions, add this line so that custom exception types are skipped during obfuscation:
-keep public class * extends java.lang.Exception

# For Fabric to properly de-obfuscate your crash reports, you need to remove this line from your ProGuard config:
-printmapping mapping.txt

# ButterKnife 
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }

-keepclasseswithmembernames class * {
    @butterknife.* <fields>;
}

-keepclasseswithmembernames class * {
    @butterknife.* <methods>;
}

# Retain generated class which implement ViewBinder.
  -keep public class * implements butterknife.internal.ViewBinder { public <init>(); }

# gson
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

-keepattributes EnclosingMethod

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }

#sqlite
-keep class org.sqlite.** { *; }
-keep class org.sqlite.database.** { *; }


# OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**

#picasso
-dontwarn com.squareup.okhttp.**

# retrofit 
#sumber: https://gist.github.com/Jackgris/c4a71328b1ae346cba04#gistcomment-1829407
# https://github.com/krschultz/android-proguard-snippets
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

# AppCompat
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }

-keep public class * extends android.support.v4.view.ActionProvider {
    public <init>(android.content.Context);
}

# CardView
# http://stackoverflow.com/questions/29679177/cardview-shadow-not-appearing-in-lollipop-after-obfuscate-with-proguard/29698051
-keep class android.support.v7.widget.RoundRectDrawable { *; }

Any clue how to fix this crash? Thanks in advance

Hanhan
  • 1,309
  • 12
  • 19
  • What are the actual versions of libraries? – Eugen Pechanec Apr 09 '17 at 15:55
  • I use latest version for com.google.android.gms:play-services-auth and google support library @EugenPechanec – Hanhan Apr 09 '17 at 16:10
  • Do you use proguard? Does your app fit the 65535 method reference limit? Do you have multidex enabled? Does this happen on other devices? Have you tried with a different version of firebase libraries? – Eugen Pechanec Apr 09 '17 at 18:27
  • @EugenPechanec yes, I use proguard, and I think my app still below 65535 method limit. From report in fabric, this crash just happen in version 4.4.4 – Hanhan Apr 10 '17 at 02:51
  • You *think*? *If your mother tells you she loves you, verify.* Android Studio > Build > Analyze APK... Check if you're under the DEX limit. ***///*** Please post the `proguardFiles` instruction from your build.gradle. Do you use the `optimize` variant? Don't. ***///*** There may be some dependency issue. Please post *formatted* output of `gradlew dependencies --configuration compile -p `. Replace with your app module name. – Eugen Pechanec Apr 10 '17 at 07:39
  • @EugenPechanec I just added data `gradlew depencencies` and proguard files. From Analyze APK, DX file defines 4438 classes with 28850 methods, and references 35878 methods. Is it fit the 65K methods reference limit? – Hanhan Apr 10 '17 at 09:20
  • Yes, of course. /// On this line in your build.gradle `proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'` make sure it says `proguard-android.txt` and NOT `proguard-android-optimize.txt`. /// In your proguard rules it says "For Fabric to properly de-obfuscate your crash reports, you need to remove this line from your ProGuard config:" but you have written the line *you were supposed to remove* right after it. /// I don't see any other issues. Publish the app with suggested changes and see if the crash happens again. Stack trace should be better then. – Eugen Pechanec Apr 10 '17 at 10:51
  • oh, ok sir, I will remove that line. Thanks for the help, sir. – Hanhan Apr 11 '17 at 02:48

0 Answers0