0

I am new to android development. I developing an application in android and have set my minSdkVersion 16 and targetSdkVersion 16 but still its not running on jellybean but working fine on marshmallow.

I am not able to find the error.

My gradle file is:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "24.0.3"
defaultConfig {
    applicationId "com.theakshaynaik.pocketambulance"
    minSdkVersion 16
    targetSdkVersion 16
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/httpclient-4.0.3.jar')
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.firebaseui:firebase-ui:0.5.1'
compile 'com.google.firebase:firebase-storage:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.android.support:multidex:1.0.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

My logcat is:

E/AndroidRuntime: FATAL EXCEPTION: main
              java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.theakshaynaik.pocketambulance-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.theakshaynaik.pocketambulance-1, /vendor/lib, /system/lib]]
                  at android.app.ActivityThread.installProvider(ActivityThread.java:4915)
                  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4518)
                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4458)
                  at android.app.ActivityThread.access$1300(ActivityThread.java:144)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319)
                  at android.os.Handler.dispatchMessage(Handler.java:99)
                  at android.os.Looper.loop(Looper.java:137)
                  at android.app.ActivityThread.main(ActivityThread.java:5136)
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:525)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                  at dalvik.system.NativeStart.main(Native Method)
               Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.theakshaynaik.pocketambulance-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.theakshaynaik.pocketambulance-1, /vendor/lib, /system/lib]]
                  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
                  at android.app.ActivityThread.installProvider(ActivityThread.java:4900)
                  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4518) 
                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4458) 
                  at android.app.ActivityThread.access$1300(ActivityThread.java:144) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319) 
                  at android.os.Handler.dispatchMessage(Handler.java:99) 
                  at android.os.Looper.loop(Looper.java:137) 
                  at android.app.ActivityThread.main(ActivityThread.java:5136) 
                  at java.lang.reflect.Method.invokeNative(Native Method) 
                  at java.lang.reflect.Method.invoke(Method.java:525) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                  at dalvik.system.NativeStart.main(Native Method) 
Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
Vaibhav More
  • 994
  • 3
  • 10
  • 22
  • Can you show us the error? A StackTrace of what went wrong and also the code what makes the app crash. – 476rick Jan 19 '17 at 14:16
  • Make sure that your device has updated google play services i.e. Google Play Services 9.0+ which is required if you are using firebase in your app. – Amit Upadhyay Jan 19 '17 at 14:40
  • Try this - http://stackoverflow.com/questions/39825543/didnt-find-class-com-google-firebase-provider-firebaseinitprovider – zeekhuge Jan 19 '17 at 14:41

1 Answers1

0

It looks like you have reached the 64K method limit and need to enable multidex. Android versions below 5.0 use Dalvik which only supports 64K methods (including libraries) by default, Android 5.0 and up use ART which supports more than 64K methods by default. You can read all about multidex here on the Android Developer website.

Sander
  • 808
  • 6
  • 18