2013-03-04 51 views
0

我试图运行GCM示例应用程序,但我在我的logcat中遇到致命异常(我的应用程序被强制关闭)它表明服务器URL链接是无效的URL。如果我运行我的URL链接,显示“没有注册设备”。如果URL无效表示它显示错误,但显示“没有设备注册”。所以我很困惑。为什么我面临这个问题。Android服务器注册时的Google Cloud消息传递问题?

的logcat:

03-04 16:28:11.691: E/AndroidRuntime(770): FATAL EXCEPTION: AsyncTask #1 
03-04 16:28:11.691: E/AndroidRuntime(770): java.lang.RuntimeException: An error occured while executing doInBackground() 
03-04 16:28:11.691: E/AndroidRuntime(770): at android.os.AsyncTask$3.done(AsyncTask.java:299) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
03-04 16:28:11.691: E/AndroidRuntime(770): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.lang.Thread.run(Thread.java:856) 
03-04 16:28:11.691: E/AndroidRuntime(770): Caused by: java.lang.IllegalArgumentException: invalid url: 192.168.1.2:8080/home/register 
03-04 16:28:11.691: E/AndroidRuntime(770): at com.google.android.gcm.demo.app.ServerUtilities.post(ServerUtilities.java:138) 
03-04 16:28:11.691: E/AndroidRuntime(770): at com.google.android.gcm.demo.app.ServerUtilities.register(ServerUtilities.java:66) 
03-04 16:28:11.691: E/AndroidRuntime(770): at com.google.android.gcm.demo.app.DemoActivity$2.doInBackground(DemoActivity.java:88) 
03-04 16:28:11.691: E/AndroidRuntime(770): at com.google.android.gcm.demo.app.DemoActivity$2.doInBackground(DemoActivity.java:1) 
03-04 16:28:11.691: E/AndroidRuntime(770): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
03-04 16:28:11.691: E/AndroidRuntime(770): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
03-04 16:28:11.691: E/AndroidRuntime(770): ... 5 more 

代码: http://paste.org/62112

回答

1

它的事业 “无效网址:192.168.1.2:8080/home/register” ...... 看来你没有上传代码到网络服务器呢。你必须上传服务器代码Live服务器。

1

请记住,这里的方法ServerUtilities.register(..)是静态的,将RegId作为参数并将此ID注册到服务器。你必须做你的代码在这种方法同样像我们公布任何字符串到我们的GET或POST方法服务器:

你的方法看起来像这样的代码后如下:

static boolean register(final Context context, final String regId) { 

     String URL = CommonUtilities.SERVER_URL+"&device=" + regId; 

     Log.v("URL : ", URL); 
     JSONObject json = fetchTwitterPublicTimeline(URL); 

     try { 
      Log.i("Json : ", json.toString()); 
      String login_msg = json.getString("MESSAGE"); 
      Log.i("Reply : ", login_msg); 
     } catch (Exception e) { 

     } 
} 
1

您设备尚未注册,因为给出的服务器URL是错误的。请检查并提供有效的网址。

相关问题