1

The question seem to be repeated by I wrote it because none of the solution worked for me.

My mobile device description:

HUAWEI LYO-L02

EMUI 3.1

Android 5.1

My issue is, i have google firebase service subscribed in my app. When i try to open the application it crashes with following information.

I have made sure, the manifest file has a application that extends application class and

@Override 
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
} 

has been done.

My gradel file desc:

    defaultConfig {
        applicationId "com.myappid"
        minSdkVersion 21 //android 5 minimum
        targetSdkVersion 26
        // Enabling multidex support.
        multiDexEnabled true
}

none of these links helped me. https://github.com/firebase/quickstart-android/issues/105 Didn't find class "com.google.firebase.provider.FirebaseInitProvider"? https://developer.android.com/studio/build/multidex.html

if you want any more description, I will be more than happy to provide it. Thanks

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.myappid.uat-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:5590)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5155)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5089)
    at android.app.ActivityThread.access$1900(ActivityThread.java:186)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1591)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5929)
    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:987)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.myappid.uat-2/base.apk"],nativeLibraryDirectories=[/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 android.app.ActivityThread.installProvider(ActivityThread.java:5575)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5155) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5089) 
    at android.app.ActivityThread.access$1900(ActivityThread.java:186) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1591) 
    at android.os.Handler.dispatchMessage(Handler.java:111) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5929) 
    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:987) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782) 
    Suppressed: java.lang.ClassNotFoundException: com.google.firebase.provider.FirebaseInitProvider
    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)
            ... 13 more
 Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

app module gradle : // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        ext.kotlin_version = '1.2.71'
        repositories {
            jcenter()
            google()
            mavenCentral()
        }
        dependencies {
          //  classpath 'com.android.tools.build:gradle:3.0.1'
    //        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
            classpath 'com.google.gms:google-services:3.1.0'
            classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url "https://clojars.org/repo/" }
        }
    }

task clean(type: Delete) {
    delete rootProject.buildDir
}

project gradle:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

dependencies {
    // The Fabric Gradle plugin uses an open ended version to react
    // quickly to Android tooling updates
    classpath 'io.fabric.tools:gradle:1.27.1'
}

}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
//apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'
//apply plugin: 'com.neenbedankt.android-apt'

def VERSION_CODE = 46
def VERSION_NAME = "APP-1.0"



dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    def nucleusVersion = '3.0.0'
    def supportVersion = '23.4.0'
    compile project(path: ':common', configuration: 'default')
    compile project(path: ':laframework', configuration: 'default')
    compile "info.android15.nucleus:nucleus:$nucleusVersion"
    compile "info.android15.nucleus:nucleus-support-v4:$nucleusVersion"
    compile "info.android15.nucleus:nucleus-support-v7:$nucleusVersion"
    compile 'com.android.support:appcompat-v7:27.0.0'
    compile 'com.android.support:support-v4:27.0.0'
    compile 'com.android.support:support-compat:27.0.0'
    compile "com.android.support:design:$supportVersion"
    compile 'com.android.support:recyclerview-v7:27.0.0'
    compile 'com.google.android.gms:play-services:12.0.1'
    compile 'com.google.android.gms:play-services-location:12.0.1'
    compile 'com.google.firebase:firebase-messaging:12.0.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.getpebble:pebblekit:3.1.0@aar'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'frankiesardo:icepick:3.2.0'
    compile 'uk.co.chrisjenx:calligraphy:2.2.0'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.android.gms:play-services-maps:12.0.1'
    testCompile 'org.objenesis:objenesis:2.1'
    testCompile 'junit:junit:4.12'
    compile 'org.greenrobot:eventbus:3.1.1'
    testCompile 'org.mockito:mockito-core:1.+'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.1'
    //    apt 'frankiesardo:icepick-processor:3.2.0'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
    compile 'io.reactivex.rxjava2:rxandroid:2.1.0'
    // Because RxAndroid releases are few and far between, it is recommended you also
    // explicitly depend on RxJava's latest version for bug fixes and new features.
    // (see https://github.com/ReactiveX/RxJava/releases for latest 2.x.x version)
    compile 'io.reactivex.rxjava2:rxjava:2.x.x'

    /**
     * this is for release builds
     */

    compile files('libs/accessory-v2.6.1.jar')
    compile files('libs/sdk-v1.0.0.jar')
}

repositories {
    maven { url 'https://maven.fabric.io/public' }
}



android {

    compileSdkVersion 27
    buildToolsVersion '26.0.2'
    configurations.all {
        resolutionStrategy {
            force 'com.android.support:support-annotations:25.3.1'
        }
    }
    defaultConfig {
        applicationId "com.myapplication"
        minSdkVersion 21 //android 5 minimum
        targetSdkVersion 26
        // Enabling multidex support.
        multiDexEnabled true
        versionCode VERSION_CODE
    }



buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        versionNameSuffix "-debug"
        debuggable true

    }
}



packagingOptions {
    pickFirst 'META-INF/LICENSE'
}

testOptions {
    unitTests.returnDefaultValues = true
}

lintOptions {
    abortOnError false
}

}

apply plugin: 'com.google.gms.google-services'

1 Answers1

0

There are a number of problems with your build dependencies.

You should not use com.google.android.gms:play-services:X.X.X. The documentation for using Play Services explains:

Don't use the combined play-services target. It brings in dozens of libraries, bloating your application. Instead, specify only the specific Google Play services APIs your app uses

See the docs linked above for a list of the specific APIs. Use only the specific ones you need. It's possible that after fixing this, you won't need to use MultiDex.

You are using very old versions of many of the libraries. Review the documentation for each and try to use the latest available version that is compatible with your build. The latest versions of the Firebase SDK are listed here. The latest versions of the Play Services APIs are listed in Table 1 of the Setup Guide.

It may also help to upgrade to a newer version of the Google Services Gradle Plugin. The latest version is 4.2.0.

Bob Snyder
  • 37,759
  • 6
  • 111
  • 158