【问题标题】:Google App Engine - java.lang.NoClassDefFoundError: com.google.appengine.api.datastore.DatastoreServiceFactoryGoogle App Engine - java.lang.NoClassDefFoundError: com.google.appengine.api.datastore.DatastoreServiceFactory
【发布时间】:2014-09-05 14:38:13
【问题描述】:

我有一个应用程序正在成功地将内容上传到 Google 的 App Engine 上的服务器。我现在想做的是使用这样构造的 DataStore 检索该内容:

 DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();

每当我拨打该行时,都会收到以下错误:

09-05 11:21:37.922: E/AndroidRuntime(27138): FATAL EXCEPTION: AsyncTask #2
Caused by: java.lang.NoClassDefFoundError: 
com.google.appengine.api.datastore.DatastoreServiceFactory

目前我不确定问题出在应用程序本身还是在 AppEngine 上。我已经尝试将一些建议的 JAR 添加到我的构建路径中,例如 appengine-agent.jar 和 appengineagentimpl.jar,但没有成功。

我非常感谢您对此的任何意见。谢谢!

【问题讨论】:

  • 你用的是eclipse还是Android Studio?

标签: java android google-app-engine google-cloud-datastore


【解决方案1】:

请注意,DatastoreServiceFactory 仅在服务器端可用。如果是这种情况,那么您需要将所需的 jar 添加到您的 war/WEB-INF/lib/ 文件夹中。将它们放在您的构建路径上是不够的。

如果您使用 Eclipse,请单击“问题”选项卡。您可能会看到一条警告,指出此 jar 在服务器上不可用。右键单击此警告,选择 QuickFix,选择“复制...”选项。或者手动复制这个jar到这个目录。

【讨论】:

  • 您好,谢谢您的回复。我没有看到该警告,这是我的 war/WEB-INF/lib 文件夹中的 JAR:appengine-agent、appengine-impl、appengine-api-1.0-sdk-1.9.10、appengine-api-labs , appengine-api-stubs, appengine-api, appengine-datastore-filter, appengine-endpoints-deps, appengine-endpoints, appengine-jsr107cache-1.9.10, appengine-remote, asm-4.0, datanucleus-api-jdo-3.1 .3、datanucleus-api-jpa-3.1.3、datanucleus-appengine-2.1.2、datanucleus-core-3.1.3、gcm-server、geronimo-jpa、jod-api、json_simple、jsr17cache、jta-1.1。相当广泛的清单。你发现有什么遗漏了吗?
  • 我刚刚将 Google AppEngine SDK 中的所有 jar 文件添加到 war/WEB-INF/lib 文件夹,重新部署到 App Engine 中,我得到了同样的错误。真令人沮丧。
  • 您确定您的客户端 (Android) 代码中没有对此类的引用吗?
  • 好吧,我在 OP 中发布的代码 (DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();) 实际上是在 AsyncTask 中调用以从服务器检索实体。这是个问题吗?
  • App Engine SDK 只能在服务器端使用。客户端代码中不应有对 SDK 类的引用。看看在 Android 中使用端点:developers.google.com/appengine/docs/java/endpoints/…
猜你喜欢
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 2018-02-14
  • 2011-02-11
  • 2011-10-25
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多