【问题标题】:unable to run android connected app engine starter project无法运行 android 连接的应用程序引擎启动项目
【发布时间】:2012-06-09 07:48:45
【问题描述】:

我正在尝试调试与应用引擎连接的 android 入门应用,但是当我在手机上选择帐户(android 2.3.6 并按照教程在 appengine 上部署应用)时,它会显示这些错误并提示强制关闭应用. 这是logcat:

06-09 13:00:07.781: D/dalvikvm(14321): GC_CONCURRENT freed 76K, 44% free 3311K/5831K, external 518K/1030K, paused 3ms+3ms 
06-09 13:00:08.007: I/global(14321): Loaded time zone names for en_US in 1308ms. 
06-09 13:00:08.398: W/dalvikvm(14321): threadid=9: thread exiting with uncaught exception (group=0x40018578) 
06-09 13:00:08.429: E/AndroidRuntime(14321): FATAL EXCEPTION: IntentService[my_registered_c2dm_id@gmail.com]
06-09 13:00:08.429: E/AndroidRuntime(14321): java.lang.RuntimeException: The RequestFactory ValidationTool must be run for the com.testtasker.client.MyRequestFactory RequestFactory type
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.google.web.bindery.requestfactory.vm.impl.Deobfuscator$Builder.load(Deobfuscator.java:59)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.google.web.bindery.requestfactory.vm.InProcessRequestFactory.<init>(InProcessRequestFactory.java:80)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.google.web.bindery.requestfactory.vm.RequestFactorySource.create(RequestFactorySource.java:43)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.testtasker.Util.getRequestFactory(Util.java:158)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.testtasker.DeviceRegistrar.getRequest(DeviceRegistrar.java:107)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.testtasker.DeviceRegistrar.registerOrUnregister(DeviceRegistrar.java:54)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.testtasker.C2DMReceiver.onRegistered(C2DMReceiver.java:46)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.google.android.c2dm.C2DMBaseReceiver.handleRegistration(C2DMBaseReceiver.java:191)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at com.google.android.c2dm.C2DMBaseReceiver.onHandleIntent(C2DMBaseReceiver.java:110)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at android.os.Looper.loop(Looper.java:130)
06-09 13:00:08.429: E/AndroidRuntime(14321):    at android.os.HandlerThread.run(HandlerThread.java:60)

我在 google 和 stackoverflow 上搜索了很多,但无法解决错误。 我没有更改启动代码中的单个字符,那么为什么它没有运行。

当我尝试通过模拟器(如教程中所述)时,它会给出 PHONE_REGISTRATION_ERROR。

使用过的软件: 面向 Web 开发人员的 Eclipse Java EE IDE。
eclipse 平台 3.7.2
版本:Indigo Service Release 2
内部版本号:20120216-1857

ADT 18.0.0
应用引擎 java sdk1.6.6
gwt SDK 2.4.0

这是调试堆栈:

DalvikVM[localhost:8600]    
Thread [<1> main] (Running) 
Thread [<8> Binder Thread #2] (Running) 
Thread [<7> Binder Thread #1] (Running) 
Thread [<9> IntentService[my_registered_c2dm_id@gmail.com]] (Suspended (exception RuntimeException))    
    C2DMReceiver(C2DMBaseReceiver).onHandleIntent(Intent) line: 124 
    IntentService$ServiceHandler.handleMessage(Message) line: 59    
    IntentService$ServiceHandler(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 130 
    HandlerThread.run() line: 60    

点击线程 9 变量时,它会显示:

com.testtasker.C2DMReceiver@4052c3e8 
Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[com.testtasker]   
cmp=com.testtasker/.C2DMReceiver (has extras) }

请帮助我,我必须使用应用引擎,但在此之前,此示例应在真实设备上运行。

【问题讨论】:

  • 您是否将“lib”文件夹更改为“libs”?

标签: android google-app-engine android-logcat


【解决方案1】:

我不知道您使用的是哪个“教程”。使用 ADT 18,您将无法在此处运行 http://bradabrams.com/2011/05/google-io-session-overview-android-app-engine-a-developers-dream-combination/

请按照此处的说明进行操作: https://developers.google.com/eclipse/docs/appeng_android_install_setup

另外,请务必注册 c2dm 服务:https://developers.google.com/android/c2dm/signup,我认为这是您的实际问题。我相信在测试时,您必须使用您在手机和本地 App Engine 服务器上注册时使用的相同帐户登录。

您是否自定义了文件,或者您是否正在尝试开箱即用地测试 c2dm 服务?

【讨论】:

  • 我只遵循了该教程。我确实注册了 c2dm 服务并收到了确认。你知道这是什么意思吗-Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[com.testtasker] cmp=com.testtasker/.C2DMReceiver (有额外的)}
  • 不确定那行是什么意思,也许在它周围发布堆栈跟踪?另外,您在实体手机中运行时是否得到相同的行为,而不是在模拟器中运行?
猜你喜欢
  • 2012-04-16
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多