【发布时间】:2017-08-07 20:53:33
【问题描述】:
我的应用中出现此错误:
03-16 17:18:44.050 7026-7026/com.momentstel.vivawehdat A/FirebaseApp:Firebase API 初始化失败。 java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.google.firebase.FirebaseApp.zza(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1696) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1671) 在 com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知来源) 在 android.app.ActivityThread.installProvider(ActivityThread.java:4999) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:4594) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534) 在 android.app.ActivityThread.access$1500(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 引起:java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/internal/zzud; 在 com.google.firebase.crash.internal.config.flag.Flags.(未知来源) 在 com.google.firebase.crash.internal.config.flag.Flags.initialize(未知来源) 在 com.google.firebase.crash.FirebaseCrash.getInstance(未知来源) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.google.firebase.FirebaseApp.zza(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1696) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1671) 在 com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知来源) 在 android.app.ActivityThread.installProvider(ActivityThread.java:4999) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:4594) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534) 在 android.app.ActivityThread.access$1500(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 原因:java.lang.ClassNotFoundException:在路径上找不到类“com.google.android.gms.internal.zzud”:DexPathList [[zip file“/data/app/com.momentstel.vivawehdat-1/base .apk”,压缩文件“/data/app/com.momentstel.vivawehdat-1/split_lib_dependencies_apk.apk”,压缩文件“/data/app/com.momentstel.vivawehdat-1/split_lib_slice_0_apk.apk”,压缩文件“/数据/app/com.momentstel.vivawehdat-1/split_lib_slice_1_apk.apk”,压缩文件“/data/app/com.momentstel.vivawehdat-1/split_lib_slice_2_apk.apk”,压缩文件“/data/app/com.momentstel。 vivawehdat-1/split_lib_slice_3_apk.apk”,压缩文件“/data/app/com.momentstel.vivawehdat-1/split_lib_slice_4_apk.apk”,压缩文件“/data/app/com.momentstel.vivawehdat-1/split_lib_slice_5_apk.apk” , 压缩文件 "/data/app/com.momentstel.vivawehdat-1/split_lib_slice_6_apk.apk", 压缩文件 "/data/app/com.momentstel.vivawehdat-1/split_lib_slice_7_apk.apk", 压缩文件 "/data/app /com.momentstel.vivawehdat-1/split_lib_slice_8_apk.apk”,压缩文件“/data/app/com.momentstel.vivawehdat-1/spli t_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:511) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:469) 在 com.google.firebase.crash.internal.config.flag.Flags.(未知来源) 在 com.google.firebase.crash.internal.config.flag.Flags.initialize(未知来源) 在 com.google.firebase.crash.FirebaseCrash.getInstance(未知来源) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.google.firebase.FirebaseApp.zza(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.FirebaseApp.initializeApp(未知来源) 在 com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1696) 在 android.content.ContentProvider.attachInfo(ContentProvider.java:1671) 在 com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知来源) 在 android.app.ActivityThread.installProvider(ActivityThread.java:4999) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:4594) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534) 在 android.app.ActivityThread.access$1500(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 抑制:java.lang.ClassNotFoundException:com.google.android.gms.internal.zzud 在 java.lang.Class.classForName(本机方法) 在 java.lang.BootClassLoader.findClass(ClassLoader.java:781) 在 java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 26 更多 原因:java.lang.NoClassDefFoundError: Class not found using the boot class loader;没有可用的堆栈 03-16 17:18:45.185 7026-7026/com.momentstel.vivawehdat E/AndroidRuntime: 致命异常: main 进程:com.momentstel.vivawehdat,PID:7026 java.lang.IllegalAccessError:方法 'void com.google.firebase.iid.FirebaseInstanceId.zzju(java.lang.String)' 无法访问类 'com.google.firebase.messaging.FirebaseMessaging'(声明 'com.google .firebase.messaging.FirebaseMessaging' 出现在 /data/app/com.momentstel.vivawehdat-1/split_lib_dependencies_apk.apk:classes4.dex 中) 在 com.google.firebase.messaging.FirebaseMessaging.subscribeToTopic(未知来源) 在 com.momentstel.vivawehdat.SplaceScreeen.onCreate(SplaceScreeen.java:40) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
----- Gradle 代码
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId 'com.momentstel.vivawehdat'
minSdkVersion 16
targetSdkVersion 25
versionCode 4
versionName "1.2.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support:design:25.3.0'
compile 'com.github.armcha:LuseenBottomNavigation:1.6.1'
compile 'com.android.support:support-v4:25.3.0'
compile 'com.android.support:recyclerview-v7:25.3.0'
compile 'com.android.support:cardview-v7:25.3.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.daimajia.slider:library:1.1.5@aar'
compile 'com.nineoldandroids:library:2.4.0'
compile "com.google.android.gms:play-services-gcm:10.2.0"
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.android.gms:play-services-ads:10.2.0'
compile 'com.google.android.gms:play-services-auth:10.2.0'
compile 'com.google.android.gms:play-services-gcm:10.2.0'
compile 'com.google.firebase:firebase-crash:9.2.1'
compile 'com.google.firebase:firebase-analytics:9.2.0'
compile 'ayar.oktay.library:advancedtextview:0.4.1'
compile 'com.google.firebase:firebase-core:10.2.0'
compile 'com.google.firebase:firebase-messaging:10.0.1'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
---- 在 Splacescreen 中
getInstance().subscribeToTopic("news");
String msg = "Thank about your Support";
String token = FirebaseInstanceId.getInstance().getToken();
【问题讨论】:
-
使用所有 Firebase 和 Google Play 服务库的 10.2.0 版本。混合 10.2.0、10.0.1、9.2.1、9.2.0 不好。
-
把你所有的firebase库版本改成10.2.0,问题就解决了!
-
qbix 和 Ram ... thnkx 解决了