【发布时间】:2012-05-14 14:43:08
【问题描述】:
我正在关注https://developers.google.com/eclipse/docs/appengine_connected_android 教程,当我单击“Say Hello”按钮时,我的 Eclipse 会在 RuntimeException 处停止(日志如下)。
工具
Windows 7 64 位
日食靛蓝 SR2
android-sdk rev 19
安卓 2.3.3 API 10
应用引擎 SDK 1.6.5
gwt 2.4.0
jdk1.7.0_04
EDIT解决方案:使用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
我试过了
- 四处搜索解决方案。
- 执行教程中描述的 hack(例如 proguard.cfg hack,将 'lib' 重命名为 'libs' hack)
- 执行http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation 中描述的 hack,但它们已默认设置。
- 做程序员绝望时所做的无意义的事情(重新安装工具、重新启动机器、移动目录等)
咆哮
我对 Google 提供如此无用的工具感到非常失望,我发现人们在使用这个特定的向导时遇到问题是很常见的。这是一个简单的“Hello World”向导,开箱即用是最不值得期待的。
作为一个附带问题,是否有任何其他好的资源/示例来帮助学习如何在 App Engine 和 Android 应用之间同步数据?如果没有简单的解决方案来让这个“Hello World”工作,那只是浪费时间。
编辑已解决。当示例项目启动并运行时,它实际上非常好。
【问题讨论】:
标签: android google-app-engine eclipse-plugin runtimeexception