尝试在我的应用中实现GCM . 编译成功 . 但是,当我运行我的应用程序时,它崩溃了 . 堆栈跟踪 :
E / FirebaseApp:Firebase API初始化失败 . 来自com.google.firebase.FirebaseApp.initializeApp(未知来源)的com.google.firebase.FirebaseApp.zza(未知来源)的java.lang.reflect.Method.invoke(本地方法)中的java.lang.reflect.InvocationTargetException com.google.firebase.FirebaseApp.initializeApp(未知来源)位于com.google.firebase.FirebaseApp.zzbu(未知来源)的com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源),位于android.content.ContentProvider . attachInfo(ContentProvider.java:1748)位于android.app.A活动时,com.google.firest.provider.FirebaseInitProvider.attachInfo(未知来源)的android.content.ContentProvider.attachInfo(ContentProvider.java:1723)处于android.app.ActivityThread.installProvider(ActivityThread . java:5174)在android.app.ActivityThread.installContentProviders(ActivityThread.java:4769)android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709)android.app.ActivityThread.-wrap1(ActivityThread.java)at android .app.ActivityThread $ H.handleMessage(ActivityThread.java:1415)a android.os.Looper.loop(Looper.java:148)的android.os.Handler.dispatchMessage(Handler.java:102)位于java.lang的android.app.ActivityThread.main(ActivityThread.java:5443) . com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)中的reflect.Method.invoke(Native Method) by:java.lang.IncompatibleClassChangeError:方法'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)'应该是virtual类型,但是被发现是类型的com.google.firebase.iid.zzg.zzeC(未知来源)直接(声明'com.google.firebase.iid.zzg'出现在/data/app/sun.way2online.dropxapp-2/base.apk中)来自com.google.fire.fireid.iid.zzg . (未知来源)的com.google.firebase.iid.zzg . (未知来源)com.google.firebase.iid.zzd.zzb(未知来源)com.google java.lang.reflect.Method上的.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)位于com.google.firebase.FirebaseApp.initializeApp(未知来源)的com.google.firebase.FirebaseApp.zza(未知来源)上的.invoke(原生方法)位于com.google.firebase.FirebaseApp.initializeApp(未知来源)的com位于android.content.ContentProvider的android.content.ContentProvider.attachInfo(ContentProvider.java:1748)上的com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源)中的.google.firebase.FirebaseApp.zzbu(未知来源) . attachInfo(ContentProvider.java:1723)位于android.app.ActivityThread.installContentProviders(ActivityThread)的android.app.ActivityThread.installProvider(ActivityThread.java:5174)的com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知来源) . java:4769)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709)android.app.ActivityThread.-wrap1(ActivityThread.java)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1415)在Android.os.Lo的android.os.Handler.dispatchMessage(Handler.java:102)位于android.app.ActivityThread.main(ActivityThread.java:5443)的oper.loop(Looper.java:148)位于com.android.internal.os.ZygoteInit $的java.lang.reflect.Method.invoke(Native Method) MethodAndArgsCaller.run(ZygoteInit.java:728)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)07-05 12:01:28.476 15753-15753 / sun.way2online.dropxapp D / FirebaseApp: com.google.firebase.crash.FirebaseCrash未链接 . 跳过初始化 .
和
java.lang.IncompatibleClassChangeError:方法'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)'应该是虚拟类型,但是被发现是直接类型(在com.google.android.gms.iid.zzd.zzeC上,“com.google.android.gms.iid.zzd”的声明出现在/data/app/sun.way2online.dropxapp-2/base.apk中)知道来源)com.google.android.gms.iid.zzd . (未知来源)com.google.android.gms.iid.zzd . (未知来源)com.google.android.gms.iid.InstanceID . 来自android.app.IntentService $ serviceHandler.handleMessage的myapp.com.Services.RegistrationIntentService.onHandleIntent(RegistrationIntentService.java:29)中的com.google.android.gms.iid.InstanceID.getInstance(未知来源)的zza(未知来源) (IntentService.java:66)atandroid.os.Handler.dispatchMessage(Handler.java:102)在android.os.Hooper.loop(Looper.java:148)android.os.HandlerThread.run(HandlerThread.java:61)
我的gradle文件:
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile "com.google.android.gms:play-services-gcm:9.0.0"
}
apply plugin: 'com.google.gms.google-services'
1 回答
问题可能来自您的应用所依赖的库之一,也依赖于Google Play服务的库 . 您可能使用旧版本的Google Play Services SDK,它仍然依赖于Google API Client类是接口的事实 . 由于库的传递依赖性,这打破了向后兼容性 . 如果可能,请检查您是否使用最新版本或删除了依赖性 .
有关Google Play服务的更多信息,请点击此链接:https://www.reddit.com/r/androiddev/comments/3mehbb/breaking_changes_in_google_play_services_81/