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

use*_*955 20 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");
    } 
Run Code Online (Sandbox Code Playgroud)

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

请帮忙 !

Lal*_*ani 31

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

  • 我的gcm.jar在libs里面,我配置路径仍然没有成功 (6认同)

小智 28

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


Jac*_*nkr 10

gcm.jar已经在libs中,所以它不是我的文件夹命名问题..

我不得不去Right Click> Build Path> Configure Build path...有问题的项目,我删除了以下内容:

  • 文件夹/包之外的任何延迟文件
  • Android Private Libraries
  • 任何带有"引用"一词的包(你可能没有)

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

感谢DLew的回答.


小智 6

在项目文件夹中创建一个文件夹libs并将gcm.jar放入其中.然后使用configure build path选项中的add external jar将其添加到类路径中.