GCM:java.lang.noclassdeffounderror:com.google.android.gcm.GCMRegistrar

时间:2012-06-30 12:05:26

标签: android push-notification

我正在尝试使用以下代码将设备注册到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");
    } 

我已导入导入com.google.android.gcm.GCMRegistrar;
还将GCM.jar添加到我在Eclipse中的buildpath中,我通过sdk下载了

请帮忙!

10 个答案:

答案 0 :(得分:31)

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

答案 1 :(得分:28)

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

答案 2 :(得分:10)

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

我必须前往Right Click> Build Path>对于相关项目Configure Build path...,我删除了以下内容:

  • 文件夹/包之外的任何延迟文件
  • Android Private Libraries
  • 其中包含“引用”一词的任何捆绑包(您可能没有)

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

感谢 DLew 获得此答案。

答案 3 :(得分:6)

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

答案 4 :(得分:3)

您必须将gcm.jar文件放在 libs 中,然后转到项目 Properties&gt; Java构建路径&gt;库并使用添加外部JAR ... 将其添加到您的路径中,在订单和导出之后,您检查gcm.jar并按确定< / em>的。这应该工作

答案 5 :(得分:1)

确保gcm jar文件位于正确的libs文件夹中,并添加到项目属性的java构建路径中。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

由于

答案 8 :(得分:0)

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

TAG也应该是一个字符串 - &gt; “”标签名称“

答案 9 :(得分:0)

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