20

我正在尝试使用以下代码将设备注册到 GCM:

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    GCMRegistrar.checkDevice(this);
    // the following function can be removed when deploying the app
    GCMRegistrar.checkManifest(this);

    final String regId = GCMRegistrar.getRegistrationId(this);
    if (regId.equals("")) {
      GCMRegistrar.register(this, SENDER_ID);
    } else {
      Log.v(TAG, "Already registered");
    } 

我已经导入了 import com.google.android.gcm.GCMRegistrar;
并且还将 GCM.jar 添加到我在 Eclipse 中的构建路径中,这是我通过 sdk 下载获得的

请帮忙 !

4

10 回答 10

31

在更新的 ADT(高于 ADT 17)中,您必须将 jar 文件放在libs文件夹中,而不是lib. 因此,请确保将gcm.jar文件放入libs而不是lib文件夹。

于 2012-07-16T11:47:03.097 回答
28

只需转到项目属性-> java构建路径->“订购和导出”现在在您添加的jar文件“GCM.jar”上打勾

于 2012-07-05T12:34:24.713 回答
10

gcm.jar的已经在库中了,所以这对我来说不是文件夹命名问题..

对于有问题的项目,我必须转到Right Click> Build Path> Configure Build path...,并删除了以下内容:

  • 文件夹/包之外的任何挥之不去的文件
  • Android Private Libraries
  • 任何包含“参考”一词的捆绑包(您可能没有)

您的项目中可能会出现很多“错误”,因此请重新启动 Eclipse 并让它清理。一旦它清理你将没有错误。运行你的项目和中提琴。

感谢DLew的回答。

于 2013-05-30T13:01:00.370 回答
6

在您的项目文件夹中创建一个文件夹libs并将 gcm.jar 放入其中。然后使用在配置构建路径选项中添加外部 jar将其添加到您的类路径中。

于 2012-08-07T20:26:05.907 回答
3

您必须将 gcm.jar 文件放在libs中,然后转到项目Properties > Java Build Path > Libraries并使用Add External JARs...将其添加到您的路径中,然后在Order and Export中检查 gcm.jar 并按OK。那应该工作

于 2013-05-21T22:23:47.737 回答
1

Make sure that the gcm jar file is in the right libs folder and added into the java build path at your project properties.

于 2012-07-03T09:09:51.170 回答
1

我也遇到了同样的问题,在我的 libs 文件夹中添加android-support-v4.jargcm.jar没有问题后发现它的工作就像一个魅力

谢谢

于 2014-05-02T04:44:02.417 回答
1

在我的项目中更新 SDK 后,我遇到了同样的问题。它对我有帮助:我只是在“Android 工具”中“添加支持库”。希望这对其他人有帮助。

于 2013-06-11T07:51:57.830 回答
0

SENDER_ID 字段应该是您创建 google api 项目时的项目 ID。阅读本文开头:http: //developer.android.com/guide/google/gcm/gs.html#libs

TAG 也应该是一个字符串 -> ""tag Name"

于 2012-07-03T01:10:10.863 回答
0

您好您正在使用旧的 GCM 实现使用 https://developers.google.com/cloud-messaging/android/start上提供的新实现

于 2016-01-05T10:48:04.727 回答