首页 文章

Google Play Services 9.2.1和google-services插件

提问于
浏览
1

我的应用程序需要集成google play服务和firebase;所以,我已经下载了官方演示,complie google play服务和firebase sdk,google play服务和firebase sdk已更新到v9.2.1,该演示在android 5.0上运行良好,但在Android 4.4.4上崩溃 .

单击here下载演示!

这是我的build.gradle:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:support-v4:23.2.1'

 compile 'com.google.firebase:firebase-core:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'
}

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

这是崩溃日志:

07-19 14:34:29.790 25938-25938 / com.google.firebase.quickstart.analytics E / FirebaseCrash:无法初始化崩溃报告com.google.firebase.crash.internal.zzg $ zza:

com.google.android.gms.internal.zzsj $ zza:找不到可接受的模块 . com.google.firebase上com.google.firebase.crash.FirebaseCrash . (未知来源)的com.google.firebase.crash.internal.zzg.zzbq(未知来源)的本地版本为0,远程版本为0.来自com.google.firebase.FirebaseApp.zza上java.lang.reflect.Method.invoke(Method.java:515)的java.lang.reflect.Method.invokeNative(Native Method)的crash.FirebaseCrash.getInstance(未知来源) (com.google.firebase.FirebaseApp.initializeApp(未知来源)com.google.fire.FirebaseApp.initializeApp(未知来源)com.google.firebase.FirebaseApp.zzeh(未知来源)com.google上的(未知来源)位于com.google.firebase.provider的android.content.ContentProvider.attachInfo(ContentProvider.java:1562)上的android.content.ContentProvider.attachInfo(ContentProvider.java:1591)中的.firebase.provider.FirebaseInitProvider.onCreate(未知来源) android.app.ActivityThread.install上android.app.ActivityThread.installProvider(ActivityThread.java:5038)的.FirebaseInitProvider.attachInfo(未知来源)在android.app.ActivityThread.access $ 1500(ActivityThread.java:145)android.app.ActivityThread $ H.handleMessage的android.app.ActivityThread.handleBindApplication(ActivityThread.java:4566)上的ContentProviders(ActivityThread.java:4632) ActivityThread.java:1276)android.app.Handler.dispatchMessage(Handler.java:102)android.app.Looper.loop(Looper.java:145)android.app.ActivityThread.main(ActivityThread.java:5266) )at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java) :826)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:642)at dalvik.system.NativeStart.main(Native Method)引起:com.google.android.gms.internal.zzsj $ zza :找不到可接受的模块 . 本地版本为0,远程版本为0. com.google.and.z上的com.google.andbase.gms.internal.zzsj.zza(未知来源)com.google.fire..crash.internal.zzg.zzbq(未知来源) .firebase.crash.FirebaseCrash . (未知来源)位于java.lang.reflect.Method的java.lang.reflect.Method.invokeNative(Native Method)中的com.google.firebase.crash.FirebaseCrash.getInstance(未知来源) . 通过com.google.firebase.FirebaseApp.initializeApp(未知来源)com.google.firebase.FirebaseApp.initializeApp(未知来源)的com.google.firebase.FirebaseApp.zza(未知来源)调用(Method.java:515)在com.google.firebase.FirebaseApp.zzeh(未知来源)com.google.firebase.provider.FirebaseInitProvider.onCreate(未知来源)位于android.content的android.content.ContentProvider.attachInfo(ContentProvider.java:1591) . 位于android.app.ActivityThread.installProvider的com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知来源)中的ContentProvider.attachInfo(ContentProvider.java:1562) ivityThread.java:5038)在Android.app.ActivityThread.handle上运行android.app.ActivityThread.installContentProviders(ActivityThread.java:4632)android.app.ActivityThread.access $ 1500(ActivityThread.java: 145)在Android.os.Loper.loop(Looper.java:145)的android.app.Handler.dispatchMessage(Handler.java:102)的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1276)处android.app.ActivityThread.main(ActivityThread.java:5266)位于com.android的java.lang.reflect.Method.invoke(Method.java:515)的java.lang.reflect.Method.invokeNative(Native Method)中 . 在dalvik.system.NativeStart.main(本地方法)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:642)中的internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:826)

有人可以帮帮我吗?

2 回答

  • 0

    作为第一步,您应该确定应用程序所需的特定Play服务API,并且仅包含那些而不是 com.google.android.gms:play-services . 列出 play-services 作为依赖关系拉入所有Play服务并导致超出方法引用的64K限制 . 这在前Lollipop设备上运行时会产生问题 .

    Play服务API的完整列表是provided here,Firebase API是listed here . 找到您需要的并在依赖项中列出它们而不是 com.google.android.gms:play-services .

    要了解在将 play-services 指定为依赖项时引入的所有库,您可以查看this gist或打开Gradle的Android Studio工具窗口并在 :app\Tasks\android 下运行 androidDependencies 任务 .

  • 0

    Firebase is now included in the google-play-services - 见https://developers.google.com/android/guides/releases#june_2016_-_v92 . 但不知何故,API 19(又名Android 4.4)上的播放服务不包含可用的firebase文件 . 所以你要做的是,只编译播放服务中使用的API并从中排除Firebase .

    所以删除行编译'com.google.android.gms:play-services:9.2.1'并替换为compile 'com.google.android.gms:play-services-NAME_OF_USED_API:9.2.1'之类的东西

    Alternative 您可以使用不包含Firebase的较旧版本的google-play-services .

相关问题