无法findcom.google.android.gsf包

我正尝试使用新的Google云消息传递系统,但是我遇到了一些问题。

我阅读入门文件和审查演示应用程序; 之后,我将要求应用于我的应用程序,然后我创build了一个带有API 16的新虚拟设备。

但是,当我尝试将我的设备注册到GCM时,由于此行而失败:

GCMRegistrar.checkDevice(getApplicationContext()); 

在logcat中,我看到这些错误:

 07-05 07:06:31.925: E/AndroidRuntime(691): FATAL EXCEPTION: main 07-05 07:06:31.925: E/AndroidRuntime(691): java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf 07-05 07:06:31.925: E/AndroidRuntime(691): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:83) 07-05 07:06:31.925: E/AndroidRuntime(691): at aero.tav.mobile.genel$4.onClick(genel.java:201) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.os.Handler.dispatchMessage(Handler.java:99) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.os.Looper.loop(Looper.java:137) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.app.ActivityThread.main(ActivityThread.java:4745) 07-05 07:06:31.925: E/AndroidRuntime(691): at java.lang.reflect.Method.invokeNative(Native Method) 07-05 07:06:31.925: E/AndroidRuntime(691): at java.lang.reflect.Method.invoke(Method.java:511) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-05 07:06:31.925: E/AndroidRuntime(691): at dalvik.system.NativeStart.main(Native Method) 

我已经添加gcm.jar到我的课程path; 我不知道什么是错的。

在我看来,你似乎使用了错误的模拟器。

默认模拟器使用一个没有任何Google软件包的常规Android模拟器,不能运行诸如地图,c2dm和各种类似的东西。

你想要做的是创build一个新的模拟器,可以支持Google API。

那么在运行项目时,select运行目标名称Google APIs (Google Inc).的模拟器Google APIs (Google Inc).

祝你好运。

它可能运行在不支持GCM的设备上,所以你调用GCMRegistrar.checkDevice(this); 抛出一个exception。 检查你的logcat确定。

如果您正在仿真器上进行testing,请确保您已设置仿真器来使用Google API。 当您创build模拟器时,创build新的AVD窗口有一个“目标”框。 在该框中select“Google API”。

在这里输入图像描述