Android-проект, связанный с App Engine - исходное вложение библиотеки - PullRequest
0 голосов
/ 04 февраля 2012

Я новичок в Android и App Engine. Я пытаюсь создать Android-проект, подключенный к App Engine, выполнив описанные здесь шаги:

http://code.google.com/intl/es-ES/eclipse/docs/appengine_connected_android.html

, но я 'Я не могу выполнить шаг «Say Hello» (Run & Debug: 7) с использованием C2DM, поскольку он запрашивает SocketException («Семейство адресов, не поддерживаемое протоколом»), а иногда и RuntimeException при локальной его отладке ...не понимаю, потому что я еще не настраивал проект, но после некоторой отладки я увидел, что он жаловался на то, что в некоторых библиотеках (включенных в создание проекта) отсутствует исходное вложение ... Самое неприятное, что онжалуется на ThreadPoolExecutor.class, который принадлежит java.util.concurrent в JAR Android 2.2 ... Странно, но в любом случае я прикрепил библиотеку к ее источнику, и она продолжает жаловаться на тот же класс (источник для файла ThreadPoolExecutor.class ") ...

Кажется, что происходит сбой в методу Util.getRequestFactory ()od, при исполнении первой строки.Здесь он вызывает метод в RequestFactorySource, который принадлежит библиотеке requestfactory-client, включенной при создании проекта, но опять же, без вложения источника ... Кстати, после выполнения этого вызова метода переменная «task» оценивается как ноль, это нормально?

Полагаю, речь идет о маленькой ошибке в конфигурации или о чем-то, но я боролся с этим в течение нескольких дней и уже не знаю, что делать, поэтому любая помощь будетПримите во внимание:)

РЕДАКТИРОВАТЬ: Я прилагаю вывод 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

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Это проблема

Caused by: java.lang.RuntimeException: The RequestFacto
    ry ValidationTool must be run for the com.c2dmftw.client.MyRequestFactory Reques
    tFactory type

Если вы используете GWT 2.4+, вам придется запустить инструмент проверки. Вы можете настроить Eclipse, чтобы сделать это для вас, вот как:

http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation

0 голосов
/ 29 февраля 2012

Я думаю, у меня была такая же проблема.Библиотека валидации отсутствовала, и после добавления ее вручную она работала.

Чтобы добавить ее или проверить, включена ли она, выполните следующие действия: щелкните правой кнопкой мыши свой проект> Свойства> Путь сборки Java> вкладка Библиотеки> Добавить внешние JAR-файлы

Затем перейдите в папку установки GWT.Если вы установили его с помощью eclipse, он находится в eclipse / plugins / com.google.gwt.eclipse.sdkbundle_ / gwt- / validation-api-1.0.0.GA.jar

Очистите и создайте рабочее пространство и попробуйтеснова.

Это может произойти и на стороне GWT клиента.Если это произойдет, вы должны сделать то же самое, но использовать свой проект GAE и добавить тот же jar

...