无法在 API 级别 17 上获取令牌
Posted
技术标签:
【中文标题】无法在 API 级别 17 上获取令牌【英文标题】:Unable to get token on API level 17 【发布时间】:2015-08-25 21:49:52 【问题描述】:我正在运行这些命令以获取令牌:
InstanceID instanceID = InstanceID.getInstance(getApplicationContext());
String token = instanceID.getToken(Config.GOOGLE_PROJECT_ID,
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
但是得到这个异常:
java.io.IOException: MISSING_INSTANCEID_SERVICE
at com.google.android.gms.iid.zzc.zza(Unknown Source)
at com.google.android.gms.iid.zzc.zzb(Unknown Source)
at com.google.android.gms.iid.zzc.zza(Unknown Source)
at com.google.android.gms.iid.InstanceID.zzc(Unknown Source)
at com.google.android.gms.iid.InstanceID.getToken(Unknown Source)
at autofocus.com.autofocus.activity.ItemListActivity$4.doInBackground(ItemListActivity.java:408)
at autofocus.com.autofocus.activity.ItemListActivity$4.doInBackground(ItemListActivity.java:398)
知道我做错了什么吗?
【问题讨论】:
【参考方案1】:根据官方文档:
https://developers.google.com/android/reference/com/google/android/gms/iid/InstanceID#ERROR_MISSING_INSTANCEID_SERVICE
您收到此错误是因为
无法生成令牌。仅支持带有 Google Play 的设备。
在没有启用/安装 Google Play 服务的情况下在模拟器上进行测试?
【讨论】:
谢谢。我认为这是问题所在,问题是:如何在没有 Google Play 安装的情况下在我的模拟器设备上安装 Google Play? :) 有一个众所周知的黑客攻击。这是 xamarin android player university.xamarin.com/resources/…google 的链接,用于 genymotion 的类似解决方案。如果使用谷歌官方模拟器,那么,停止使用并切换到genymotion或xap 谢谢,效果很好。我仍然不明白为什么 Google 没有将 Google Play 内置在较旧的模拟器上。它可以节省我大约 2 个小时的生命:)【参考方案2】:你需要在你的模拟器中安装gapps版本的android,如果使用genymotion你需要在gapps di之前安装Genymotion-ARM-Translation_v1.1 之后,可能会起作用
【讨论】:
以上是关于无法在 API 级别 17 上获取令牌的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 API 级别 30 上使用范围存储无法访问某些音频文件?