【发布时间】:2017-11-07 10:48:01
【问题描述】:
这似乎是完整的错误:
11-07 16:07:44.646 27955-27995/com.chatapp.gcm.chatapp E/UncaughtException: java.lang.IncompatibleClassChangeError: android.support.v4.content.ContextCompat
at com.google.android.gms.iid.zzd.zzeC(Unknown Source)
at com.google.android.gms.iid.zzd.<init>(Unknown Source)
at com.google.android.gms.iid.zzd.<init>(Unknown Source)
at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
at com.chatapp.gcm.chatapp.gcm.GcmIntentService.registerGCM(GcmIntentService.java:63)
at com.chatapp.gcm.chatapp.gcm.GcmIntentService.onHandleIntent(GcmIntentService.java:50)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:61)
这是来自 GcmIntentService.java 的第 63 行:
InstanceID instanceID = InstanceID.getInstance(this);
这是围绕该行的代码:
private void registerGCM() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String token = null;
try {
InstanceID instanceID = InstanceID.getInstance(this);
token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Log.e(TAG, "GCM Registration Token: " + token);
// sending the registration id to our server
sendRegistrationToServer(token);
sharedPreferences.edit().putBoolean(Config.SENT_TOKEN_TO_SERVER, true).apply();
} catch (Exception e) {
Log.e(TAG, "Failed to complete token refresh", e);
sharedPreferences.edit().putBoolean(Config.SENT_TOKEN_TO_SERVER, false).apply();
}
我已经尝试解决这个问题 5 个小时了。在我更新了其他答案中提到的 Google Play 服务插件后,该应用程序已经停止崩溃,但它仍然没有生成令牌。任何帮助将不胜感激。
【问题讨论】:
标签: java android google-cloud-messaging