我正在尝试实施Google云端存储Java客户端库
com.google.appengine.tools:appengine-gcs-client:0.3.13
进入将用于Android的Java库项目(不直接进入Android项目)。
库本身编译得很好,但是在编译期间我遇到了一些奇怪的“java.lang.NoClassDefFoundError”错误。我意识到这些缺少依赖性,我已经发现Guava就是其中之一:
com.google.guava:guava:17.0
但现在它要求App Engine提供一些东西:
java.lang.NoClassDefFoundError: com.google.appengine.api.utils.SystemProperty
这是什么?如何找出缺少哪个库?我能以某种方式分析JAR吗?或者你知道这是否记录在某处?
请记住我在前端,而不是后端,所以我不能或不应该将应用引擎嵌入Android:(
状态更新:
到目前为止,我发现了以下内容:
所需的依赖项是:
compile 'joda-time:joda-time:2.3'
compile 'com.google.guava:guava:17.0'
compile 'com.google.appengine.tools:appengine-gcs-client:0.3.13@jar'
Android Studio上的GCS Java客户端有没有工作样本应用程序,而且Java客户端库记录很糟糕。网站上显示的是Eclipse的所有内容,这些是代码片段,没有可下载的可下载项目:请参阅https://developers.google.com/appengine/docs/java/googlecloudstorageclient/getstarted
该文档中指定的客户端lib分发不包含 com.google.appengine.api.utils.SystemProperty(失败的那个)。 Appengine-api-1.0-sdk-1.9.6.jar中包含SystemProperty 但是当我将该jar放入libs时,我的机器在编译过程中因某些dexer问题而冻结。 [正如我之前所说,我们在客户端,我不认为我应该这样做。]
@jamrockRay有同样的问题,但决定切换到Eclipse,据说解决了这个问题:java.lang.NoClassDefFoundError error when I try to instantiate the GCS Service - 我无法切换。该文档中描述了失败,我的堆栈跟踪显示了同样的问题:
java.lang.NoClassDefFoundError: com.google.appengine.api.utils.SystemProperty
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:45)
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:38)
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:34)
我是唯一一个使用云存储的人吗?我不敢相信。
Google:在Android Studio上使用GCS Java客户端的依赖关系是什么? SystemProperty在客户端库中做了什么?有什么联系?如果在后端模块中指定了这个,我的客户端模块应该如何读出applicationId和applicationVersion [如果这引用了App Engine]?这是如何正确实施的?这在哪里描述?