App Engine连接Android项目错误

时间:2012-02-13 11:42:30

标签: android google-app-engine gwt

设定: Windows7,Eclipse 3.7.1,

步骤: 1.阅读并完成AppEngine连接android页面(google)中的所有教程

  1. 复制http://code.google.com/p/cloud-tasks-io/source/browse/中的所有文件并进行细微更改(我的app-id,无论何时需要,我的c2dm电子邮件..
  2. 部署到app-engine。
  3. 测试GWT方面:登录成功,添加任务有效(我可以看到任务已添加到Google仪表板中)。
  4. 为了测试android端我调试为“Remote app engine Connected ...”
  5. 在我的Android设备(Sunsung Galaxy II,2.3.5)中按了Menu - >帐户 - >连接(到我的电子邮件帐户 - 与上面相同)。
  6. 我收到通知:“注册my_mail@gmail.com for ..”
  7. 我按了菜单 - >刷新并获得以下异常(logcat):

    02-13 00:55:09.015:E / AndroidRuntime(25572):致命异常:AsyncTask#1     02-13 00:55:09.015:E / AndroidRuntime(25572):java.lang.RuntimeException:执行doInBackground()时发生错误     02-13 00:55:09.015:E / AndroidRuntime(25572):在android.os.AsyncTask $ 3.done(AsyncTask.java:200)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.FutureTask $ Sync.innerSetException(FutureTask.java:274)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.FutureTask.setException(FutureTask.java:125)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:308)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.FutureTask.run(FutureTask.java:138)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:581)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.lang.Thread.run(Thread.java:1019)     02-13 00:55:09.015:E / AndroidRuntime(25572):引起:com.google.web.bindery.event.shared.UmbrellaException:捕获到一个或多个异常,请参阅UmbrellaException中的完整设置#getCauses     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext $ StandardPayloadDialect.processPayload(AbstractRequestContext.java:387)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext $ 5.onTransportSuccess(AbstractRequestContext.java:1108)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.cloudtasks.AndroidRequestTransport.send(AndroidRequestTransport.java:68)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.doFire(AbstractRequestContext.java:1102)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.fire(AbstractRequestContext.java:569)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequest.fire(AbstractRequest.java:54)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequest.fire(AbstractRequest.java:59)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.cloudtasks.AsyncFetchTask.doInBackground(AsyncFetchTask.java:31)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.cloudtasks.AsyncFetchTask.doInBackground(AsyncFetchTask.java:1)     02-13 00:55:09.015:E / AndroidRuntime(25572):在android.os.AsyncTask $ 2.call(AsyncTask.java:185)     02-13 00:55:09.015:E / AndroidRuntime(25572):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:306)     02-13 00:55:09.015:E / AndroidRuntime(25572):...还有4个     02-13 00:55:09.015:E / AndroidRuntime(25572):引起:java.lang.RuntimeException:服务器错误:null     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.Receiver.onFailure(Receiver.java:44)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequest.onFail(AbstractRequest.java:118)     02-13 00:55:09.015:E / AndroidRuntime(25572):at com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext $ StandardPayloadDialect.processPayload(AbstractRequestContext.java:359)     02-13 00:55:09.015:E / AndroidRuntime(25572):... 14更多

  8. 当我尝试再次运行时,同样的过程,除了按菜单 - >刷新我试图添加新任务。这次我在logcat中没有看到任何异常,但是我在Eclipse中看到了(参见original question中的附图):找不到源代码 - ThreadPoolExecutor.java

  9. 请帮助我!

1 个答案:

答案 0 :(得分:0)

我在使用本教程时遇到过类似的问题。我认为在他们发布代码之后,Google插件中的RPC服务发生了变化,因为现在它不再创建一个名为CloudTasksRequestFactory.java的类,而是拥有一个类CloudTasksRequest.java。此外,这两个类别非常不同:

CloudTasksRequestFactory.java

package com.cloudtasks.shared;

import com.google.web.bindery.requestfactory.shared.RequestFactory;


public interface CloudTasksRequestFactory extends RequestFactory {

    TaskRequest taskRequest();

}

CloudTasksRequest.java

package com.cloudtasks.shared;

import java.util.List;

import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.ServiceName;

@ServiceName(value = "com.cloudtasks.server.CloudTasksService", locator = "com.cloudtasks.server.CloudTasksServiceLocator")
public interface CloudTasksRequest extends RequestContext {

    Request<TaskProxy> createTask();

    Request<TaskProxy> readTask(Long id);

    Request<TaskProxy> updateTask(TaskProxy task);

    Request<Void> deleteTask(TaskProxy task);

    Request<List<TaskProxy>> queryTasks();

}

这让我相信有一些架构或逻辑发生了变化,无法使用更新的工具正确构建教程。您可能希望查看https://developers.google.com/eclipse/docs/appeng_android_add_rpc,它们在说明中似乎更新。