【问题标题】:App Engine Connected Android Project ErrorApp Engine 已连接 Android 项目错误
【发布时间】:2012-02-13 11:42:29
【问题描述】:

设置: Windows7、Eclipse 3.7.1、

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

  1. 复制 http://code.google.com/p/cloud-tasks-io/source/browse/ 中的所有文件并稍作更改(我的 app-id 需要时,我的 c2dm 电子邮件..
  2. 部署到应用引擎。
  3. 测试 GWT 端:登录成功,添加任务有效(我可以看到在 Google 仪表板中添加了任务)。
  4. 为了测试 android 端,我调试为“已连接远程应用引擎 ...”
  5. 在我的 android 设备 (Sunsung Galaxy II, 2.3.5) 中,我按了菜单 --> 帐户 --> 连接(连接到我的电子邮件帐户 - 同上)。
  6. 我收到通知:“Registered 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): 在 java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 java.util.concurrent.FutureTask.setException(FutureTask.java:125) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 java.util.concurrent.FutureTask.run(FutureTask.java:138) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 java.lang.Thread.run(Thread.java:1019) 02-13 00:55:09.015: E/AndroidRuntime(25572): Caused by: com.google.web.bindery.event.shared.UmbrellaException: 捕获到一个或多个异常,请参阅 UmbrellaException#getCauses 中的完整集 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext$StandardPayloadDialect.processPayload(AbstractRequestContext.java:387) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext$5.onTransportSuccess(AbstractRequestContext.java:1108) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 com.cloudtasks.AndroidRequestTransport.send(AndroidRequestTransport.java:68) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.doFire(AbstractRequestContext.java:1102) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.fire(AbstractRequestContext.java:569) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 com.google.web.bindery.requestfactory.shared.impl.AbstractRequest.fire(AbstractRequest.java:54) 02-13 00:55:09.015: E/AndroidRuntime(25572): 在 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): 在 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): 在 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): 在 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): 在 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

请帮助我!

【问题讨论】:

    标签: android google-app-engine gwt


    【解决方案1】:

    我在玩本教程时遇到了类似的问题。我认为在他们发布代码后,对 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

    包 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,它在说明中似乎是最新的。

    【讨论】:

      猜你喜欢
      • 2012-05-04
      • 2012-02-23
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 2014-05-06
      相关资源
      最近更新 更多