1

Android app crashing with error class def not found: support v4 arraymap in kitkat devices only.

Gradle Dependencies:

compile files('libs/cometchat-sdk.jar')
compile files('libs/jsoup-1.7.3.jar')
compile files('libs/picasso-2.5.2.jar')
compile files('libs/volley.jar')
// compile files('libs/android-support-v4.jar')
compile 'com.paypal.sdk:paypal-android-sdk:2.12.4'
compile files('libs/gcm.jar')
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.parse:parse-android:1.+'
compile 'info.hoang8f:android-segmented:1.0.6'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.prolificinteractive:material-calendarview:0.8.1'
compile 'com.android.support:gridlayout-v7:22.0.0'
compile 'com.android.support:cardview-v7:22.0.0'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.google.android.gms:play-services-base:8.3.0'
compile 'com.google.android.gms:play-services-maps:8.3.0'
// compile 'com.facebook.android:facebook-android-sdk:4.6.0'
// compile 'com.google.android.gms:play-services-plus:8.3.0'
// compile 'com.google.android.gms:play-services-identity:8.3.0'
compile('com.google.android.gms:play-services:8.3.0')
compile('com.twitter.sdk.android:twitter:1.8.0@aar') {
    transitive = true;
}

Log cat:

Process: java.lang.NoClassDefFoundError: android.support.v4.util.ArrayMap at
com.google.android.gms.measurement.internal.zzd.(Unknown Source) at 
com.google.android.gms.measurement.internal.zzx.zzh(Unknown Source) at 
com.google.android.gms.measurement.internal.zzt.(Unknown Source) at 
com.google.android.gms.measurement.internal.zzx.zzBQ(Unknown Source) at 
com.google.android.gms.measurement.internal.zzt.zzaU(Unknown Source) at 
com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source) at 
android.content.ContentProvider.attachInfo(ContentProvider.java:1591) at 
android.content.ContentProvider.attachInfo(ContentProvider.java:1562) at 
android.app.ActivityThread.installProvider(ActivityThread.java:4774) at 
android.app.ActivityThread.installContentProviders(ActivityThread.java:4369) at 
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4309) at 
de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method) at 
de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631) at 
android.app.ActivityThread.handleBindApplication(Native Method) at 
android.app.ActivityThread.access$1500(ActivityThread.java:135) at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at 
android.os.Handler.dispatchMessage(Handler.java:102) at 
android.os.Looper.loop(Looper.java:136) at 
android.app.ActivityThread.main(ActivityThread.java:5001) 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:785) at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at 
de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) at 
dalvik.system.NativeStart.main(Native Method)
Jeremy
  • 3,438
  • 3
  • 34
  • 57

1 Answers1

2

You are getting

Log cat: Process: java.lang.NoClassDefFoundError: android.support.v4.util.ArrayMap at com.google.android.gms.measurement.internal.zzd.(Unknown Source) at com.google.android.gms.measurement.internal.zzx.zzh(Unknown Source) at com.google.android.gms.measurement.internal.zzt.(Unknown Source) at com.google.android.gms.measurement.internal.zzx.zzBQ(Unknown Source) at com.google.android.gms.measurement.internal.zzt.zzaU(Unknown Source)

NoClassDefFoundError in Java comes when Java Virtual Machine is not able to find a particular class at runtime which was available during compile time.

So import android.support.v4.util.ArrayMap instead of android.util.ArrayMap

Courtesy goes to Crash with Android 4.1 with ArrayMap #Blackbelt's Sir Answer .

Community
  • 1
  • 1
IntelliJ Amiya
  • 74,896
  • 15
  • 165
  • 198
  • How can he import the v4 lib if the code that is crashing is inside a google library? – Jeremy Jan 21 '16 at 17:36
  • 1
    I was wondering the exact same, and the way I solved was just to add and import and class creation on my Application class and that made the trick, also I did have to set the specific gsm library in order to remove the multiDexEnabled true wich fails with older apis – Camilo Casadiego Feb 04 '16 at 15:46