0

App Engine に接続された Android スターター アプリをデバッグしようとしていますが、電話でアカウントを選択すると (Android 2.3.6 で、チュートリアルに従って appengine にアプリをデプロイすると)、これらのエラーが表示され、アプリケーションを強制的に閉じるように求められます。ログキャットは次のとおりです。

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でよく検索しましたが、エラーを解決できませんでした。スターター コードで 1 文字も変更しなかったのに、なぜ実行されないのか。

(チュートリアルで説明されているように) エミュレーターを試してみると、PHONE_REGISTRATION_ERROR が返されます。

使用ソフト:Eclipse Java EE IDE for Web Developers。
Eclipse プラットフォーム 3.7.2
バージョン: Indigo Service Release 2
ビルド ID: 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) }

助けてください。私はアプリ エンジンを動作させる必要がありますが、その前にこのサンプルを実際のデバイスで実行する必要があります。

4

1 に答える 1

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 サービスをすぐにテストしようとしていますか?

于 2012-06-09T23:08:44.517 に答える