3

My app works perfectly when you run it on API 23 - 25, but on API 21 & 22 it crashes with the following error:

12-12 15:01:18.436 27069-27069/com.platinum.hydro E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.platinum.hydro, PID: 27069
   java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
       at com.google.firebase.FirebaseApp.<clinit>(Unknown Source)
       at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
       at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
       at android.app.ActivityThread.installProvider(ActivityThread.java:5319)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:4893)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4833)
       at android.app.ActivityThread.access$1500(ActivityThread.java:178)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1531)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loop(Looper.java:194)
       at android.app.ActivityThread.main(ActivityThread.java:5631)
       at java.lang.reflect.Method.invoke(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/com.platinum.hydro-2/base.apk"],nativeLibraryDirectories=[/data/app/com.platinum.hydro-2/lib/arm, /vendor/lib, /system/lib]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
       at com.google.firebase.FirebaseApp.<clinit>(Unknown Source) 
       at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1751) 
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1726) 
       at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
       at android.app.ActivityThread.installProvider(ActivityThread.java:5319) 
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:4893) 
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4833) 
       at android.app.ActivityThread.access$1500(ActivityThread.java:178) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1531) 
       at android.os.Handler.dispatchMessage(Handler.java:111) 
       at android.os.Looper.loop(Looper.java:194) 
       at android.app.ActivityThread.main(ActivityThread.java:5631) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:372) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
    Suppressed: java.lang.ClassNotFoundException: android.support.v4.util.ArrayMap
       at java.lang.Class.classForName(Native Method)
       at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
       at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
            ... 18 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Tshego
  • 126
  • 2
  • 8

3 Answers3

3

Just moving the comments into an answer.

The 9.8.0 version of the firebase library is outdated and might not work well with the other support libraries.

Try using the current version. (10.0.1 as of this answer). You'll also need to update the other Play Services dependencies accordingly

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
1

Actually , There is one more reason of this issue : When we using gradle build with :

compile 'com.google.android.gms:play-services:xxxx'

We had to compile the entire package of APIs into our app.In some cases, doing so made it more difficult to keep the number of methods in our app (including framework APIs, library methods, and your own code) under the 65,536 limit. So the solution: we should build with only packages which we use : Example :

compile 'com.google.android.gms:play-services-analytics:x.x.x'
compile 'com.google.android.gms:play-services-gcm:x.x.x'

More detail : https://developers.google.com/android/guides/setup

Le Hieu
  • 11
  • 2
0

I was having this same issue and solved it by adding these dependencies to the android/app/build.gradle file:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-analytics:17.2.0'
    // I had to add the following to fix this error.
    implementation 'com.google.firebase:firebase-auth:19.0.0'
    implementation 'com.google.firebase:firebase-firestore:21.1.1'
}
jaredbaszler
  • 3,941
  • 2
  • 32
  • 40