Java android中的GCM因设备丢失谷歌软件包而崩溃

Java android中的GCM因设备丢失谷歌软件包而崩溃,java,android,crash,push-notification,google-cloud-messaging,Java,Android,Crash,Push Notification,Google Cloud Messaging,我已经在我的android应用程序中实现了GCM,它大部分时间都工作得很好。 然而,它在一些设备上崩溃,即摩托罗拉设备和联想设备 下面是摩托罗拉设备的崩溃日志部分: 01-26 03:21:33.701: E/AndroidRuntime(5832): FATAL EXCEPTION: Thread-130 01-26 03:21:33.701: E/AndroidRuntime(5832): java.lang.UnsupportedOperationException: Device do

我已经在我的android应用程序中实现了GCM,它大部分时间都工作得很好。 然而,它在一些设备上崩溃,即摩托罗拉设备和联想设备

下面是摩托罗拉设备的崩溃日志部分:

01-26 03:21:33.701: E/AndroidRuntime(5832): FATAL EXCEPTION: Thread-130

01-26 03:21:33.701: E/AndroidRuntime(5832): java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf

01-26 03:21:33.701: E/AndroidRuntime(5832):     at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98)
经过一些研究,似乎有些设备没有包
com.google.android.gsf

所以我的问题是。。哪些设备不支持它?是否有一个没有gcm所需google软件包的设备列表


提前感谢。

您可以尝试在包含
gcmregistar
的已弃用库上使用Google Play Services库。这样,你的应用程序就根本不需要
com.google.android.gsf
软件包了。

你是在使用仿真器进行构建吗?如果是的话,它是谷歌API模拟器吗?如果不是,那就是你的问题。它在实际设备上崩溃了,即摩托罗拉设备和联想设备。其他的如Nexus4,GalaxyS3,s4都很好用。你是指谷歌云信息吗?问题是我想在不推荐使用的gcmregistar中使用某些函数,例如checkManifest,但它们不在新的GoogleCloudMessaging库中。@user1610613是的,我指的是GoogleCloudMessaging类。如果要使用不推荐使用的gcmregistar的方法,可以将相关方法(如checkManifest)的源复制到应用程序中。不需要使用不推荐使用的注册方法。谷歌建议通过谷歌Play服务使用新注册。