我尝试实例化GCS服务时出现java.lang.NoClassDefFoundError错误

时间:2014-03-26 21:30:23

标签: android google-app-engine google-cloud-storage

我是java / Android开发的新手。我选择的IDE是Android Studio。基本上我需要将图像/视频剪辑和音频剪辑上传到GCS。我正在实例化这样的服务

  

" final GcsService gcsService => GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());"
  当我运行应用程序时,我收到以下错误
  java.lang.NoClassDefFoundError:com.google.appengine.api.utils.SystemProperty              at> com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFact> ory.java:40)              at> com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory> .java:34)              at> com.horcu.lme.gavi.cloud.CloudPersister.downloadDataFromGcs(CloudPersister.java:30)              at> com.horcu.lme.gavi.MainActivity $ PlaceholderFragment.onCreateView(MainActivity.java:159)   
  我的build.gradle文件的依赖项部分如下所示

     

依赖{      编译' com.android.support:support-v4:19.0.1'      编译' com.android.support:appcompat-v7:19.0.1'     编译fileTree(dir:' libs',include:[' * .jar'])      编译com.google.guava:guava-collections:r03 @ jar'     编译com.google.appengine.tools:appengine-gcs-client:0.3.3@jar'      编译' commons-io:commons-io:20030203.000550@jar'

     

}

正如您所看到的,我包含了appengine-gcs-client jar文件,它编译得很好,但在运行时崩溃。 任何人都可以建议修复此问题吗?

1 个答案:

答案 0 :(得分:1)

这通常意味着您缺少依赖项。请注意,GCS只需要appengine-gcs-client jar。首先,我认为它需要joda-time.jar。

此外,使用不在app引擎中作为服务提供的API通常需要Google Java客户端库,你有吗? https://code.google.com/p/google-api-java-client/

最后,我会注意到您上面的错误是“com.google.appengine.api.utils.SystemProperty”,它实际上是应用引擎本身的一部分。你有app引擎JAR吗?我没有使用Android Studio,但我不希望你必须手动添加应用引擎JAR - 当你创建一个应该自动添加的应用引擎项目时。

如果您不喜欢Android Studio,您可能需要考虑Eclipse + ADT,其中所有这些都是为您完成的。谷歌已经表示Android STudio将支持GAE,但它甚至还没有针对Android发布,更不用说应用引擎了。