2012-02-04 50 views
0

我是新來的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 

回答

0

我想我有同樣的問題。驗證庫丟失,手動添加後,它工作。

將其添加或檢查它是否包含這樣做: 右鍵點擊你的項目>屬性> Java構建路徑>庫選項卡>添加外部JAR

然後瀏覽到您的GWT安裝文件夾。如果你用eclipse安裝它,它在eclipse/plugins/com.google.gwt.eclipse.sdkbundle_/gwt-/validation-api-1.0.0.GA.jar

清理並構建你的工作空間,然後再試一次。

這也可能發生在客戶端GWT端。如果出現這種情況,你必須做相同的,但使用GAE項目,並添加同一個jar

相關問題