0

我已经按照向导生成了一个“应用引擎连接的 android 项目”,并使用了https://developers.google.com/eclipse/docs/endpoints-androidconnected-gae中的说明。

我对自动生成的内容所做的唯一补充是设置 api 密钥、设置进程号、设置LOCAL_ANDROID_RUN为 true。

Appengine 开发服务器启动正常,一切正常,应该在 localhost:8888

Android 应用程序可以很好地部署到模拟器(运行 google apis 作为目标)。

但是当我点击注册时,我得到

'对不起!应用程序 VillageTest(进程 com.villagetest)意外停止。请再试一次。'

带有“强制关闭”的按钮。

Logcat如下:

03-27 16:19:02.098: D/dalvikvm(422): GC_FOR_MALLOC freed 5074 objects / 389216 bytes in 75ms
03-27 16:19:02.288: V/GCMBaseIntentService(422): Releasing wakelock
03-27 16:19:02.288: W/dalvikvm(422): threadid=9: thread exiting with uncaught exception (group=0x4001d800)
03-27 16:19:02.298: E/AndroidRuntime(422): FATAL EXCEPTION: IntentService[GCMIntentService-405986951973-1]
03-27 16:19:02.298: E/AndroidRuntime(422): java.lang.NullPointerException
03-27 16:19:02.298: E/AndroidRuntime(422):  at com.villagetest.GCMIntentService.onRegistered(GCMIntentService.java:144)
03-27 16:19:02.298: E/AndroidRuntime(422):  at com.google.android.gcm.GCMBaseIntentService.handleRegistration(GCMBaseIntentService.java:251)
03-27 16:19:02.298: E/AndroidRuntime(422):  at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:153)
03-27 16:19:02.298: E/AndroidRuntime(422):  at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
03-27 16:19:02.298: E/AndroidRuntime(422):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 16:19:02.298: E/AndroidRuntime(422):  at android.os.Looper.loop(Looper.java:123)
03-27 16:19:02.298: E/AndroidRuntime(422):  at android.os.HandlerThread.run(HandlerThread.java:60)

请帮忙。这让我疯狂!!

4

2 回答 2

0

这已在今天发布的最新版 GPE (3.2.2) 中得到修复。在您之前从未向端点注册过您的设备的情况下,该问题与缺少空检查有关。

于 2013-03-27T22:29:12.720 回答
0

问题似乎出在您的 GCMIntentService 实现中(在 GCMIntentService.java 第 144 行)。我建议您在代码中发布或查看该行。

您是否按照说明在您的应用程序中实施 GCM:http:
//developer.android.com/google/gcm/gs.html
最具体地说,第 3 步?

另外,请注意,昨天有人发布了几乎完全相同的问题...
app engine(eclipse): can't register device from android emulator to endpoint

您似乎遇到了完全相同的问题,他现在已经发布了他的第 144 行。我将在那里跟进。

于 2013-03-27T18:52:16.573 回答