没有找到类“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