我是新來的Android和App Engine的,我試圖創建一個App Engine連接的Android項目,按照這裏介紹的步驟:App Engine的連接的Android項目 - 庫源連接件
http://code.google.com/intl/es-ES/eclipse/docs/appengine_connected_android.html
但我無法使用C2DM來執行「Say Hello」步驟(運行& Debug:7),因爲它會在本地調試時提示SocketException(「地址系列不受協議支持」),有時會出現RuntimeException .. 。我不明白,因爲我還沒有定製項目,但經過一些調試後,我發現它抱怨一些圖書館(包括在項目創建中)沒有一個源代碼附件...最煩人的部分是它抱怨ThreadPoolExecutor.class,它屬於Android 2.2 JAR中的java.util.concurrent ...很奇怪,但無論如何,我將庫附加到它的源代碼並持續抱怨大約相同的類(「源附件不包含文件ThreadPoolExecutor.class的源」)...
它似乎在執行第一行時在Util.getRequestFactory()方法中崩潰。在這裏,它調用RequestFactorySource中的一個方法,該方法屬於requestfactory-client庫,包含在項目創建中,但又沒有源附件...順便說一下,執行該方法調用後,「task」變量的值爲null ,這是正常的嗎?
我想這大約是在配置什麼的一個小錯誤,但我一直在用它掙扎了幾天,我已經不知道該怎麼辦,所以任何幫助,將不勝感激:)
編輯:我附上logcat輸出,我希望這可以更容易地找到錯誤。 Google搜索後發現這是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