我已按照向导生成“app engine connected android project”并使用https://developers.google.com/eclipse/docs/endpoints-androidconnected-gae中的说明。
我对自动生成的内容进行的唯一补充是设置api密钥,设置进程号,将LOCAL_ANDROID_RUN
设置为true。
Appengine dev服务器启动正常,并且应该在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)
请帮忙。这让我发疯了!
答案 0 :(得分: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行。我将在那里跟进。
答案 1 :(得分:0)
这已在今天发布的最新版GPE(3.2.2)中修复。如果您以前从未使用端点注册过设备,则问题与缺少空检查有关。