找不到com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable类

时间:2017-07-28 12:44:51

标签: firebase firebase-cloud-messaging account-kit

我的build.gradle是:

// for facebook account kit
compile 'com.facebook.android:account-kit-sdk:4.+'

// for google firebase database
compile 'com.google.firebase:firebase-database:9.6.0'

// for google firebase cloud messaging
compile 'com.google.firebase:firebase-messaging:9.6.0'

重建项目后,发生错误。

错误:(74,27)错误:无法访问AbstractSafeParcelable 找不到 com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable class

============================================== < / p>

分辨率:

原因是在重建项目后,将最新版本的“account-kit-sdk”下载到4.25.0,新版本更改了一些关于gms的内容,因此与firebase消息传递发生冲突,

所以我降级了account-kit-sdk版本,将导入版本从“account-kit-sdk:4. +”更改为“account-kit-sdk:4.24.0”

然后问题就解决了。

但我认为这不是解决这个问题的最佳解决方案。

欢迎朋友添加一些新方法来解决此问题。

感谢。

1 个答案:

答案 0 :(得分:1)

版本4.25.0 com.facebook.android:account-kit-sdk依赖于com.google.android.gms:play-services-auth-api-phone:11.0.1版本4.24.0中不存在。 com.google.android.gms:play-services-auth-api-phone在其他com.google.android.gms模块上添加了许多传递依赖项,包括basebasementtasksauthauth-base

Firebase库还对许多com.google.android.gms模块具有传递依赖性。如果构建中的所有Firebase和Play服务模块的版本号不相同,则会出现此类问题。

一个简单的解决方案是使用您在gradle依赖项中列出的所有Firebase和Play服务库的版本11.0.1:

// for google firebase database
compile 'com.google.firebase:firebase-database:11.0.1'

// for google firebase cloud messaging
compile 'com.google.firebase:firebase-messaging:11.0.1'

您还应该为Facebook库指定固定版本号,以使您的构建可预测且可重复:

compile 'com.facebook.android:account-kit-sdk:4.25.0'

将版本指定为“4. +”的风险是,当发布新版本的Play服务库的新版本具有传递依赖性时,新的Facebook lib版本将自动使用,您的构建将再次休息。

要调试此类问题,您可以在Android Studio中打开Gradle窗口,然后双击:app - &gt;任务 - &gt; android - &gt; androidDependencies 生成依赖树。然后可以检查树以找到版本不匹配。