0

我已經在我的Android應用程序中實現了GCM,它大多數時間工作正常。然而,它卻在幾臺設備上墜毀,即摩托羅拉設備和聯想設備。GCM在Android崩潰由於設備缺少谷歌包

這裏從摩托羅拉設備的崩潰日誌的部分:

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所需的谷歌軟件包的設備列表?

謝謝你提前。

+0

你使用模擬器來構建?如果是Google API模擬器?如果不是那是你的問題。 –

+0

它在實際設備上墜毀,即摩托羅拉設備和聯想設備。其他的如nexus 4,galaxy s3,s4都可以正常工作。 – user1610613

回答

0

您可以嘗試在包含GCMRegistrar的棄用庫上使用Google Play服務庫。這樣,你的應用根本不需要com.google.android.gsf包。

+0

您是指Google Cloud Messaging? http://developer.android.com/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html 事情是我想在已棄用的GCMRegistrar中使用某些功能,如checkManifest,但它們不在新的GoogleCloudMessaging庫。 – user1610613

+0

@ user1610613是的,我指的是GoogleCloudMessaging類。如果您想使用已棄用的GCMRegistrar的方法,可以將相關方法的來源(如checkManifest)複製到您的應用程序中。沒有必要使用已棄用的註冊方法。 Google建議通過Google Play服務使用新的註冊。 – Eran