【发布时间】:2012-02-04 14:16:47
【问题描述】:
我是 Android 和 App Engine 的新手,我正在尝试按照此处描述的步骤创建一个 App Engine Connected Android 项目:
http://code.google.com/intl/es-ES/eclipse/docs/appengine_connected_android.html
但我无法使用 C2DM 完成“Say Hello”步骤(运行和调试:7),因为它会在调试时提示 SocketException(“协议不支持的地址系列”),有时还会提示 RuntimeException本地...我不明白,因为我还没有自定义项目,但是经过一些调试后,我看到它抱怨某些库(包括在项目创建中)没有源附件...最烦人的部分是它抱怨 ThreadPoolExecutor.class,它属于 Android 2.2 JAR 中的 java.util.concurrent ...源附件不包含文件 ThreadPoolExecutor.class") 的源...
在执行第一行时,它似乎在 Util.getRequestFactory() 方法中崩溃。这里它调用 RequestFactorySource 中的一个方法,该方法属于 requestfactory-client 库,包含在项目创建中,但同样没有源附件...顺便说一句,在执行该方法调用后,“task”变量的值为 null ,正常吗?
我猜这是配置中的一个小错误或其他什么,但我已经为此苦苦挣扎了好几天,我已经不知道该怎么办了,所以任何帮助将不胜感激:)
编辑:我附上了 logcat 输出,我希望这样可以更容易地找到错误。谷歌搜索后,我发现这是 C2DM 示例项目中的常见错误,但我没有得到任何合适的解决方案。
I/C2dmftwActivity( 333): onCreate
I/ActivityManager( 58): Displayed activity com.c2dmftw/.C2dmftwActivity: 1281
ms (total 1281 ms)
D/dalvikvm( 126): GC_EXPLICIT freed 997 objects / 54032 bytes in 83ms
W/dalvikvm( 333): threadid=7: thread exiting with uncaught exception (group=0x4
001d800)
E/AndroidRuntime( 333): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime( 333): java.lang.RuntimeException: An error occured while exec
uting doInBackground()
E/AndroidRuntime( 333): at android.os.AsyncTask$3.done(AsyncTask.java:20
0)
E/AndroidRuntime( 333): at java.util.concurrent.FutureTask$Sync.innerSet
Exception(FutureTask.java:273)
E/AndroidRuntime( 333): at java.util.concurrent.FutureTask.setException(
FutureTask.java:124)
E/AndroidRuntime( 333): at java.util.concurrent.FutureTask$Sync.innerRun
(FutureTask.java:307)
E/AndroidRuntime( 333): at java.util.concurrent.FutureTask.run(FutureTas
k.java:137)
E/AndroidRuntime( 333): at java.util.concurrent.ThreadPoolExecutor.runWo
rker(ThreadPoolExecutor.java:1068)
E/AndroidRuntime( 333): at java.util.concurrent.ThreadPoolExecutor$Worke
r.run(ThreadPoolExecutor.java:561)
E/AndroidRuntime( 333): at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime( 333): Caused by: java.lang.RuntimeException: The RequestFacto
ry ValidationTool must be run for the com.c2dmftw.client.MyRequestFactory Reques
tFactory type
E/AndroidRuntime( 333): at com.google.web.bindery.requestfactory.vm.impl
.Deobfuscator$Builder.load(Deobfuscator.java:59)
E/AndroidRuntime( 333): at com.google.web.bindery.requestfactory.vm.InPr
ocessRequestFactory.<init>(InProcessRequestFactory.java:80)
E/AndroidRuntime( 333): at com.google.web.bindery.requestfactory.vm.Requ
estFactorySource.create(RequestFactorySource.java:43)
E/AndroidRuntime( 333): at com.c2dmftw.Util.getRequestFactory(Util.java:
158)
E/AndroidRuntime( 333): at com.c2dmftw.C2dmftwActivity$2$1.doInBackgroun
d(C2dmftwActivity.java:144)
E/AndroidRuntime( 333): at com.c2dmftw.C2dmftwActivity$2$1.doInBackgroun
d(C2dmftwActivity.java:1)
E/AndroidRuntime( 333): at android.os.AsyncTask$2.call(AsyncTask.java:18
5)
E/AndroidRuntime( 333): at java.util.concurrent.FutureTask$Sync.innerRun
(FutureTask.java:305)
E/AndroidRuntime( 333): ... 4 more
W/ActivityManager( 58): Force finishing activity com.c2dmftw/.C2dmftwActivit
y
W/GTalkService( 170): [GTalkConnection.13] doConnect: caught XMPPError connecti
ng to mtalk.google.com:5228.: (502)
W/GTalkService( 170): -- caused by: java.net.SocketException: The operation t
imed out
【问题讨论】:
标签: android google-app-engine android-c2dm