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

时间:2012-10-04 19:16:58

标签: android eclipse eclipse-juno

请帮忙,这是我处理这个问题的所有日子,并使用了网上找到的所有可能的解决方案。

要求: 使用juno eclipse,ADT 20 我与商业GCM合作,我使用Android开发人员的演示做了一个更复杂的项目 (http://developer.android.com/guide/google/gcm/demo.html) 我意识到我的应用程序是在Crask的每个调用类GCMRegistrar。

所以我创建了一个最小的练习,如果我解锁了所有内容,它将会起作用。

import com.google.android.gcm.GCMRegistrar;

    public class Manda extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_manda);

        crash --->  GCMRegistrar.checkDevice(this);

            // while developing the app, then uncomment it when it's ready.

            GCMRegistrar.checkManifest(this);

        }

我附上了最小练习的截图 我添加了gcm.jar库,我做了我发现的所有内容。

我是新用户,但我无法发布img,但我放了一个bropbox的公共链接 https://www.dropbox.com/s/dyi0y4sppz4rcq3/img%20GCM%20problem.zip

3 个答案:

答案 0 :(得分:1)

如Google的文档中所述,您必须添加以下AndroidManifast.xml文件:

<service android:name="YOUR.PACKAGE.NAME.GCMIntentService" />

<receiver
            android:name="com.google.android.gcm.GCMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <category android:name="YOUR_CATEGORY_NAME" />
            </intent-filter>
        </receiver>

确保将IntentService类放在正确的包中。

此外,您是如何将gcm.jar添加到项目中的? 您需要在项目中创建一个“libs”文件夹并将jar放在那里

答案 1 :(得分:0)

解决方案1:

  1. 检查您是否已将 gcm.jar 文件放在 libs 不是lib文件夹中。
  2. 解决方案2:

    主要是问题所在。请按照以下步骤解决问题:

    1. 右键点击项目 - &gt; 构建路径 - &gt; 配置构建路径,然后订单和导出
    2. 现在查看 Android私有库复选框应检查必需的库。
    3. 刷新,清洁并运行......你去!

答案 2 :(得分:0)

问题是没有Google Apis(Google Inc)的模拟器。 如果您使用的是Android模拟器,则必须使用Google Apis(Google Inc)创建模拟器。