1

https://developers.google.com/eclipse/docs/appengine_connected_androidチュートリアルに従っていますが、「Say Hello」ボタンをクリックすると、Eclipse がRuntimeException (以下のログ) で停止します。

ツール

Windows 7 64bits
eclipse indigo SR2
android-sdk rev 19
android 2.3.3 API 10
app engine sdk 1.6.5 gwt
2.4.0
jdk1.7.0_04
編集解決策: Java 6 を使用

ログ

05-05 02:32:48.501: W/dalvikvm(523): threadid=9: thread exiting with uncaught exception (group=0x40015560)
05-05 02:32:48.501: E/AndroidRuntime(523): FATAL EXCEPTION: AsyncTask #1
05-05 02:32:48.501: E/AndroidRuntime(523): java.lang.RuntimeException: An error occured while executing doInBackground()
05-05 02:32:48.501: E/AndroidRuntime(523):  at android.os.AsyncTask$3.done(AsyncTask.java:200)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.lang.Thread.run(Thread.java:1019)
05-05 02:32:48.501: E/AndroidRuntime(523): Caused by: java.lang.RuntimeException: The RequestFactory ValidationTool must be run for the com.MyApp.client.MyRequestFactory RequestFactory type
05-05 02:32:48.501: E/AndroidRuntime(523):  at com.google.web.bindery.requestfactory.vm.impl.Deobfuscator$Builder.load(Deobfuscator.java:59)
05-05 02:32:48.501: E/AndroidRuntime(523):  at com.google.web.bindery.requestfactory.vm.InProcessRequestFactory.<init>(InProcessRequestFactory.java:80)
05-05 02:32:48.501: E/AndroidRuntime(523):  at com.google.web.bindery.requestfactory.vm.RequestFactorySource.create(RequestFactorySource.java:43)
05-05 02:32:48.501: E/AndroidRuntime(523):  at com.MyApp.Util.getRequestFactory(Util.java:158)
05-05 02:32:48.501: E/AndroidRuntime(523):  at com.MyApp.MyAppActivity$2$1.doInBackground(MyAppActivity.java:144)
05-05 02:32:48.501: E/AndroidRuntime(523):  at com.MyApp.MyAppActivity$2$1.doInBackground(MyAppActivity.java:1)
05-05 02:32:48.501: E/AndroidRuntime(523):  at android.os.AsyncTask$2.call(AsyncTask.java:185)
05-05 02:32:48.501: E/AndroidRuntime(523):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
05-05 02:32:48.501: E/AndroidRuntime(523):  ... 4 more

私はもう試した

  • 解決策を探し回る。
  • チュートリアルで説明されているハックを実行する (例: proguard.cfg ハック、「lib」から「libs」ハックへの名前変更)
  • http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidationで説明されているハックを実行しますが、デフォルトで既に設定されています。
  • プログラマーが絶望的なときに行う無意味なこと (ツールの再インストール、マシンの再起動、ディレクトリの移動など) を行う

暴言

このような役に立たないツールを提供した Google には非常に失望しています。この特定のウィザードで問題が発生するのはよくあることです。これは単純な "Hello World" ウィザードであり、箱から出してすぐに動作することはほとんど期待できません。

余談ですが、App Engine と Android アプリの間でデータを同期する方法を学ぶのに役立つリソースや例は他にありますか? この「Hello World」を機能させるための簡単な解決策がない場合、それは時間の無駄に他なりません。

編集解決しました。サンプル プロジェクトが起動して実行されると、実際には非常に便利です。

4

1 に答える 1

2

説明したように、requestfactory-apt.jar をAndroid アプリの Java Compiler/annotation processing/factory パスにアタッチしました。

  • まだ最新バージョンをお持ちでない場合は、App Engine SDK 1.6.5.1 に更新してください。

  • Make Project Clean... プロジェクトで。

  • Java 6 を使用してください。App Enginge はまだ Java 7 をサポートしていません。

于 2012-05-05T10:39:50.620 に答える