Firebase通知集成将引发java.lang.IncompatibleClassChangeError [英] Firebase notification integration throws java.lang.IncompatibleClassChangeError

查看:207
本文介绍了Firebase通知集成将引发java.lang.IncompatibleClassChangeError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将Firebase通知集成到现有的Android应用程序中。但是,当应用程序启动它崩溃。

 进程:uk.co.stableweb.geethika,PID:24344 
java .lang.IncompatibleClassChangeError:com.google.firebase.auth.FirebaseAuth
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:226)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
at dalvik.system.DexPathList.findClass(DexPathList.java:338)
at dalvik.system.BaseDexClassLoader.findClass( BaseDexClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)$ b $ at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at java .lang.Class.classForName(本地方法)$ b $在java.lang.Class.forName(Class.java:324)$ b $在java.lang.Class.forName(Class.java:285)
在com.google.firebase.FirebaseApp.zza(未知来源)
在com.google.firebase.FirebaseApp.initializeApp(未知来源e)
,位于com.google.firebase.FirebaseApp.initializeApp(未知源)
位于com.google.firebase.FirebaseApp.zzeh(未知源)
,位于com.google.firebase.provider .FirebaseInitProvider.onCreate(未知源)
在android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
在android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
在com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知源)
在android.app.ActivityThread.installProvider(ActivityThread.java:5233)
在android.app.ActivityThread.installContentProviders(ActivityThread。在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4768)
在android.app.ActivityThread.access
(ActivityThread.java:154)
在android。 app.ActivityThread $ H.handleMessage(ActivityThread.java:1441)
at android.os.Handler.dispatchMessage(Handler.java:102)
at a ndroid.os.Looper.loop(Looper.java:152)
at android.app.ActivityThread.main(ActivityThread.java:5497)
at java.lang.reflect.Method.invoke(Native Method )
at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-18 10:47:24.284 24344-24344 / uk.co.stableweb.geethika D / AppTracker:App事件:crash

这是app.grade。

  compile'c​​om.android.support:appcompat-v7 :23.4.0'
compile'c​​om.android.support:design:23.4.0'
compile'c​​om.android.support.constraint:constraint-layout:1.0.0-alpha4'
编译'com.google.firebase:firebase-core:9.2.0'
编译'com.google.firebase:firebase-database:9.2.0'
compile'c​​om.android.support:cardview -v7:23.4.0'
compile'c​​om.android.support:recyclerview-v7:23.4.0'
compile'c​​om.firebaseu i:firebase-ui:0.4.1'
compile'c​​om.firebaseui:firebase-ui-database:0.4.1'
compile'c​​om.firebaseui:firebase-ui-auth:0.4.1'
compile'org.sufficientlycure:html-textview:1.6'
compile'c​​om.android.support:support-v4:23.4.0'
compile'c​​n.pedant.sweetalert:library: 1.3'
compile'c​​om.google.firebase:firebase-messaging:9.2.1'

在另一个问题在stackoverflow,有人建议启用身份验证。即使我不使用身份验证,我启用了匿名选项。



b

我更新了Google存储库,并在设备和SDK中播放服务。如果你对如何解决这个问题有任何想法,那就太好了。谢谢!

解决方案

Firebase SDK要求所有库都在相同的版本。



如果您使用 com.google.firebase:firebase-core:9.2.0
,则您需要 com .google.firebase:firebase-messaging:9.2.0



该错误似乎是由 firebase-auth 库的版本不是 firebase-core 。但是你的gradle文件中没有firebase-auth,这很奇怪。



您可能还需要依赖的其他库,导入的firebase-auth版本与firebase-core导入版本不同。



使用以下命令检查它:

  gradle -q app:dependencies --configuration compile 


I'm trying to integrate firebase notification to existing android application. But when the app start it crashes.

Process: uk.co.stableweb.geethika, PID: 24344
  java.lang.IncompatibleClassChangeError: com.google.firebase.auth.FirebaseAuth
      at dalvik.system.DexFile.defineClassNative(Native Method)
      at dalvik.system.DexFile.defineClass(DexFile.java:226)
      at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
      at dalvik.system.DexPathList.findClass(DexPathList.java:338)
      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
      at java.lang.Class.classForName(Native Method)
      at java.lang.Class.forName(Class.java:324)
      at java.lang.Class.forName(Class.java:285)
      at com.google.firebase.FirebaseApp.zza(Unknown Source)
      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
      at com.google.firebase.FirebaseApp.zzeh(Unknown Source)
      at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
      at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
      at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
      at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
      at android.app.ActivityThread.installProvider(ActivityThread.java:5233)
      at android.app.ActivityThread.installContentProviders(ActivityThread.java:4828)
      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4768)
      at android.app.ActivityThread.access$1600(ActivityThread.java:154)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1441)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:152)
      at android.app.ActivityThread.main(ActivityThread.java:5497)
      at java.lang.reflect.Method.invoke(Native Method)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-18 10:47:24.284 24344-24344/uk.co.stableweb.geethika D/AppTracker: App Event: crash

This is app.grade.

compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha4'
    compile 'com.google.firebase:firebase-core:9.2.0'
    compile 'com.google.firebase:firebase-database:9.2.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.firebaseui:firebase-ui:0.4.1'
    compile 'com.firebaseui:firebase-ui-database:0.4.1'
    compile 'com.firebaseui:firebase-ui-auth:0.4.1'
    compile 'org.sufficientlysecure:html-textview:1.6'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'cn.pedant.sweetalert:library:1.3'
    compile 'com.google.firebase:firebase-messaging:9.2.1'

In another question in stackoverflow, someone suggested to enable authentication. Even though I don't use authentication, I enabled anonymous option.

And I updated google repository and play services in both device and SDK. If you have any idea on how to solve this it would be great. Thank you!

解决方案

Firebase SDK requires all the libraries to be at the same version.

if you are using com.google.firebase:firebase-core:9.2.0 then you need com.google.firebase:firebase-messaging:9.2.0

The error seems to be caused by firebase-auth library being on a different version than firebase-core. But you don't have firebase-auth in your gradle file, which is strange.

It's possible that some other library you are depending on, are importing firebase-auth with a different version than your firebase-core import.

Check this with the following command:

gradle -q app:dependencies --configuration compile

这篇关于Firebase通知集成将引发java.lang.IncompatibleClassChangeError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆