没有找到类“com.google.firebase.provider.FirebaseInitProvider,在使用工作室构建从 Eclipse 升级 apk 时

Posted

技术标签:

【中文标题】没有找到类“com.google.firebase.provider.FirebaseInitProvider,在使用工作室构建从 Eclipse 升级 apk 时【英文标题】:Didn't find class “com.google.firebase.provider.FirebaseInitProvider, While upgrading the apk from eclipse with studio build 【发布时间】:2019-01-24 08:09:27 【问题描述】:

日志:

B E/androidRuntime:致命异常:主进程:com.nova.app.check,PID:28293 java.lang.RuntimeException:无法获取提供程序 com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:没有在路径上找到类“com.google.firebase.provider.FirebaseInitProvider”:DexPathList[[zip file“/data/app/com.nova.app.check-2/base.apk”],nativeLibraryDirectories=[/data/app /com.nova.app.check-2/lib/x86, /system/lib, /vendor/lib]] 在 android.app.ActivityThread.installProvider(ActivityThread.java:5814) 在 android.app.ActivityThread.installContentProviders( ActivityThread.java:5403) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342) 在 android.app.ActivityThread.-wrap2(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1528) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6077) 在 java. lang.reflect.方法.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 原因:java .lang.ClassNotFoundException:在路径上找不到类“com.google.firebase.provider.FirebaseInitProvider”:DexPathList [[zip 文件“/data/app/com.nova.app.check-2/base.apk”] ,nativeLibraryDirectories=[/data/app/com.nova.app.check-2/lib/x86, /system/lib, /vendor/lib]] 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 在java.lang.ClassLoader.loadClass(ClassLoader.java:380) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:312) 在 android.app.ActivityThread.installProvider(ActivityThread.java:5799) 在 android.app.ActivityThread .installContentProviders(ActivityThread.java:5403) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342) 在 android.app.ActivityThread.-wrap2(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread .java:152 8) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6077) 在 java.在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 的 lang.reflect.Method.invoke(Native Method) )

===

我已经在 gradle 中启用了 multidex,我的应用程序类是用 MultiDexApplication 扩展的......我也实现了支持 multidex 库......

一旦我的应用程序安装成功,应用程序就会开始崩溃。

我的 build.gradle 内容

apply plugin: 'com.android.application'


android 
aaptOptions 
    cruncherEnabled = false


lintOptions 
    abortOnError false


repositories 
    mavenCentral()


compileSdkVersion 27
buildToolsVersion '27.0.3'
//buildToolsVersion "27.0.1"

defaultConfig 
    applicationId "com.nova.app.check"
    minSdkVersion 19
    targetSdkVersion 24
    multiDexEnabled true
    versionCode 17
    versionName "2.0.1"
    vectorDrawables.useSupportLibrary = true
    sourceSets.main 
        jniLibs.srcDir 'src/main/libs'
        jni.srcDirs = []

    
    buildTypes 
        debug 
            //minifyEnabled true
            //shrinkResources true
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        

        release 
            //minifyEnabled true
            //shrinkResources true
            //runProguard false
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        
        staging 
            // Specifies a sorted list of fallback build types that the
            // plugin should try to use when a dependency does not include a
            // "staging" build type. You may specify as many fallbacks as you
            // like, and the plugin selects the first build type that's
            // available in the dependency.
            matchingFallbacks = ['debug', 'qa', 'release']
        
    

    packagingOptions 
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
        // exclude 'META-INF/json.tld'
    

    useLibrary 'org.apache.http.legacy'


    dexOptions 
        javaMaxHeapSize "4g"
    

    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_7
    


dependencies 
    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation files('libs/GraphView-3.0.jar')
    implementation files('libs/jWebSocketClientAPI-1.0.jar')
    implementation files('libs/jWebSocketCommon-1.0.jar')
    implementation files('libs/jWebSocketJavaSEClient-1.0.jar')
    implementation files('libs/jackson-core-asl-1.9.3.jar')
    implementation files('libs/jackson-mapper-asl-1.9.3.jar')
    implementation files('libs/mail.jar')
    //implementation files('libs/json-taglib-0.4.1.jar')
    implementation files('libs/org.apache.commons.io.jar')
    implementation files('libs/org.apache.http.legacy.jar')
    implementation files('libs/zip4j_1.3.1.jar')
    implementation files('libs/ImageLoader.jar')
    //implementation files('libs/itsrts-pptviewer.jar')
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.android.volley:volley:1.0.0'
    //noinspection GradleCompatible

    implementation 'com.android.support:customtabs:27.1.1'
    implementation 'com.android.support:support-annotations:27.0.3'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:27.1.1'
    implementation project(path: ':androidTest')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    compile 'com.android.support:cardview-v7:27.1.1'
    compile 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    //implementation 'com.google.android.gms:play-services:12.0.1'
    //for qr code scanning
    implementation 'com.google.android.gms:play-services-vision:12.0.1'
    //implementation 'me.dm7.barcodescanner:zxing:1.9'
    // migrate from eclipse
    implementation 'com.google.android.gms:play-services-gcm:12.0.1'
    implementation 'com.google.android.gms:play-services-location:12.0.1'
    implementation 'com.google.android.gms:play-services-places:12.0.1'

    implementation files('libs/gcm-server.jar')
    implementation files('libs/OneSignalSDK.jar')

    //socket connection lib for remoteview
    implementation 'com.github.nkzawa:socket.io-client:0.6.0'
    implementation "com.squareup.okhttp3:okhttp:3.7.0"
    // custom fab
    implementation 'com.github.clans:fab:1.6.4'

    // butter knife
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

    //zoom imageView library
    implementation 'com.jsibbold:zoomage:1.1.0'

    //pdfviewer library
    implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'

    // custom images
    //implementation 'com.linsea:universalvideoview:1.1.0@aar'

    //qr code scan
    compile 'com.journeyapps:zxing-android-embedded:3.4.0'

    //testing lib


dependencies 
implementation 'com.android.support.constraint:constraint-layout:+'
implementation 'com.android.support:support-annotations:28.0.0-alpha3'

注意:我的基础应用程序是从 Eclipse 安装的,现在 >我已经从工作室生成的 apk 升级了它。我的应用程序是一个启动器应用程序,它在启动阶段本身启动。

【问题讨论】:

转到:构建 -> 清理项目 -> 再次运行 请添加您的build.gradle文件的内容。 @GursheeshSingh 我也尝试过干净的构建和重建。 @AlexMamo 我已经更新了上面的 build.gradle 文件 @beginner 您是否也尝试在文件末尾添加apply plugin: 'com.google.gms.google-services' 【参考方案1】:

先取消勾选

Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run

然后将此代码添加到你的 build.gradle 模块中:app inside defaultConfing:

defaultConfig 
    ....
    ....
    multiDexEnabled = true

将此代码添加到您的 build.gradle 模块中:应用程序内部依赖项:

dependencies 
    compile 'com.android.support:multidex:1.0.1'
    .....
    .....

在应用程序中打开 AndroidManifest.xml:

<application
    android:name="android.support.multidex.MultiDexApplication"
    .....
    .....
</application>

或者,如果您有自己的 Application 类,请从 MultiDexApplication 扩展它,例如:

 public class MyApp extends MultiDexApplication 
    .....
   

希望对你有帮助

【讨论】:

我已经在我的项目中包含了相同的内容。 'dependencies compile 'com.android.support:multidex:1.0.1' ..... ..... ' 我使用的是 1.0.3 版本而不是这个库。

以上是关于没有找到类“com.google.firebase.provider.FirebaseInitProvider,在使用工作室构建从 Eclipse 升级 apk 时的主要内容,如果未能解决你的问题,请参考以下文章

未找到 ID 为“com.google.firebase.appdistribution”的插件

找不到类“com.google.firebase.provider.FirebaseInitProvider”

.ClassNotFoundException:在路径上找不到类“com.google.firebase.provider.FirebaseInitProvider”:DexPathList

Lcom/google/firebase/FirebaseApp 类中没有虚拟方法 zzbqo()Z;或其超类('com.google.firebase.FirebaseApp' 的声明

找不到 com.google.android.gms.internal.zzbgl 的类文件

com.google.firebase.database.DatabaseException:无法将 java.lang.String 类型的对象转换为数据类对象 KOTLIN