【发布时间】:2015-09-25 20:56:28
【问题描述】:
您好朋友,我想在我的应用程序中集成GCM,所以我在我的应用程序中设置了以下代码:
按钮点击调用功能
public void requestForGCM(final Context context ){
try {
new AsyncTask<Void, Void, String>() {
protected void onPreExecute() {
super.onPreExecute();
};
@Override
protected String doInBackground(Void... params) {
regid = null;
try {
if (gcmObj == null) {
gcmObj = GoogleCloudMessaging.getInstance(context);
}
regid = gcmObj.register("SENDER_ID");
Log.w("", "Token >> "+regid);
} catch (Exception e) {
Log.e("", "requestForGCM >> "+e.toString());
return null;
}
return regid;
}
@SuppressLint("NewApi")
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
String GCMToken = result;
etRegId.setText(regid + "\n");
} catch (Exception e) {
Log.e("", "onPostExecute >> "+e.toString());
}
}
}.execute();
} catch (Exception e) {
Log.e("", "requestForGCM >> "+e.toString());
}
}
我将 jar 设置如下
当我运行上面的代码时,它给了我如下错误:
Caused by: java.lang.NoClassDefFoundError: com.google.android.gms.gcm.GoogleCloudMessaging
编辑 LOGCAT
07-08 11:37:20.193: E/AndroidRuntime(10385): FATAL EXCEPTION: AsyncTask #1
07-08 11:37:20.193: E/AndroidRuntime(10385): java.lang.RuntimeException: An error occured while executing doInBackground()
07-08 11:37:20.193: E/AndroidRuntime(10385): at android.os.AsyncTask$3.done(AsyncTask.java:299)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.lang.Thread.run(Thread.java:856)
07-08 11:37:20.193: E/AndroidRuntime(10385): Caused by: java.lang.NoClassDefFoundError: com.google.android.gms.gcm.GoogleCloudMessaging
07-08 11:37:20.193: E/AndroidRuntime(10385): at pkg.android.rootways.worldofrental.FragmentDashboard$8.doInBackground(FragmentDashboard.java:1142)
07-08 11:37:20.193: E/AndroidRuntime(10385): at pkg.android.rootways.worldofrental.FragmentDashboard$8.doInBackground(FragmentDashboard.java:1)
07-08 11:37:20.193: E/AndroidRuntime(10385): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-08 11:37:20.193: E/AndroidRuntime(10385): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
任何解决方案,我该如何解决这个问题?你的所有建议都适用
【问题讨论】:
-
你能把你的整个日志贴出来吗
-
为什么您为支持库定义了
jar文件以及您同时添加了project。定义任何一个。 -
千里眼:看看我的整个logcat
-
你的 SDK 版本是多少?
-
SilentKnight : 我的 sdk 版本是 22 但这不是问题我已经用相同的 sdk 做了一个演示并且它正在工作但是当我集成到我的应用程序中时它不起作用
标签: android google-cloud-messaging google-play-services