IntelliJ 中的 Google Play、Drive API 示例代码

2024-02-06

我正在关注Android 版 Google 云端硬盘快速入门说明 https://developers.google.com/drive/quickstart-android并让它在 Eclipse/Kepler 中工作。 (Juno 就是很狡猾。)但是,我对 IntelliJ 更熟悉,所以我试图弄清楚如何以相应的方式安装这些 API。

I think我被 Drive API 部分绊倒了。 Eclipse 插件以某种特殊的方式或位置安装 Drive。我添加了 Google-api-services-drive-v2-rev63-1.14.1-beta.jar 作为库,与其他库(Google-play-services 和 api_java_client)相同。但是当我运行该应用程序时,它会返回

java.lang.NoClassDefFoundError: com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential

我还收到了与 Drive$Builder 有关的 NoClassDefFoundError 错误。

在 IntelliJ 中,.jar 范围设置为“编译”,但 api_java_client 库除外,该库设置为“已提供”。他们都没有选中“导出”。

编辑:添加模块和依赖项。我现在有一个不同的错误:

04-07 00:39:59.766: ERROR/AndroidRuntime(10697): FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError:
com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential
    at com.fallinghawks.weight4.App.onCreate(App.java:15)

App.java:15 是

credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);

我可以找到它要求的课程......

编辑 2,按照 CrazyCoder 的说明添加库后:它编译,运行,但出现以下错误。我确信我错过了做正确的事情,我会在一分钟内重试,但与此同时错误是:

04-10 18:02:35.120: ERROR/AndroidRuntime(740): FATAL EXCEPTION: main
    java.lang.ExceptionInInitializerError
    at com.google.api.services.drive.Drive$Builder.build(Drive.java:7301)
    at com.example.DriveQuickstart.MyActivity.getDriveService(MyActivity.java:110)
    at com.example.DriveQuickstart.MyActivity.onActivityResult(MyActivity.java:49)
    at android.app.Activity.dispatchActivityResult(Activity.java:5293)
    at android.app.ActivityThread.deliverResults(ActivityThread.java:3315)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3362)
    at android.app.ActivityThread.access$1100(ActivityThread.java:141)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5041)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NoClassDefFoundError: com.google.common.base.Preconditions
    at com.google.api.services.drive.Drive.<clinit>(Drive.java:63)

(希望最终编辑):是的,我错过了一些东西,而这头野兽正在工作!太感谢了!!
现在我可以再次使用 IntelliJ 来处理我的“真实”项目......好多了:)


我继续从头开始创建 IntelliJ IDEA 项目,花了大约 15 分钟,工作得很好。

  1. 下载Drive API v2 库和依赖项 https://code.google.com/p/google-api-java-client/wiki/APIs#Drive_API.

  2. 将其解压到某处,打开readme.html,花几分钟阅读它以了解需要哪些罐子。

  3. 使用向导在 IDEA 中创建一个新的 Android 应用程序项目com.example.drivequickstart包装和MainActivity. Use Android 4.2.2 谷歌 API作为平台。

  4. 将下载的 Drive API 库中的以下 jar 复制到项目中libs文件夹(您应该已经从步骤 2 中了解了要使用哪些 jar):

    • google-api-client-1.14.1-beta.jar
    • google-api-client-android-1.14.1-beta.jar
    • google-http-client-1.14.1-beta.jar
    • google-http-client-android-1.14.1-beta.jar
    • google-http-client-gson-1.14.1-beta.jar
    • google-oauth-client-1.14.1-beta.jar
    • gson-2.1.jar
    • jsr305-1.3.9.jar
    • google-api-services-drive-v2-rev65-1.14.1-beta.jar
  5. 配置项目库 http://img41.imageshack.us/img41/3742/20130410005145.png从这些罐子里。可以通过在项目视图中选择 jar 来完成,右键单击,添加为库...,将此库添加到主模块的依赖项中。

  6. File | Import Module,浏览至ANDROID_SDK\extras\google\google_play_services\libproject\google-play-services_‌​lib,从现有来源。

  7. Add google-play-services.jar对于导入模块的依赖项,启用Export复选框,它应该看起来像这样 http://img809.imageshack.us/img809/7697/20130410005634.png.

  8. 将步骤 6 中创建的模块添加到主应用程序模块的依赖项 http://img62.imageshack.us/img62/9571/20130410005903.png.

  9. Copy MainActivity示例代码来自快速开始 https://developers.google.com/drive/quickstart-android,第4步进入MainActivity.java文件替换旧代码,编辑AndroidManifest.xml以及按照指南。

  10. 构建,在模拟器或设备上运行以进行测试(不要忘记步骤 1-2)快速开始 https://developers.google.com/drive/quickstart-android).


或者你可以只是下载并使用 ftp://ftp.intellij.net/pub/.idea/drive-example.zip我按照上述步骤创建的完全隔离的示例(第 6 步中的模块包含在项目中)。

由于一些相机应用程序错误(示例使用相机,而我的模拟器没有配置它),它在模拟器中失败,但在 Galaxy Nexus 设备上运行。该示例使用设备相机拍摄照片并将其上传到您的 Google 云端硬盘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IntelliJ 中的 Google Play、Drive API 示例代码 的相关文章

  • 查找回收器视图中的第一个可见项目是否是列表的第一项

    我有一个包含 13 个数据项的回收器视图 我想知道列表中的第一项是否可见 我知道像这样的方法findFirstVisibleItemPosition and findLastVisibleItemPosition但他们没有说明第一个可见项目
  • 在 Android 中的活动、服务和应用程序之间传递变量

    有人可以给我提供以下活动 服务 应用程序组合的示例吗 我拥有这三个 但我已经把我的应用程序弄得一团糟 试图在这个地方传递一堆变量 现在我不知道发生了什么 请注意 我是 Android 新手 最近我一直在努力解决这个问题 因为有很多方法可以实
  • android 谷歌+登录定制

    我正在创建一个 Android 应用程序 现在我正在实现社交网络登录 Facebook 按钮很好 但 google 按钮的语言与 Facebook 不同 另外 它只说 登录 我想让它说 用谷歌登录 我是 android 编程的新手 看到我需
  • 如何编辑 gradle 依赖项

    我正在开发一个 android 项目 该项目在我的 gradle 文件中使用以下依赖项 compile com mapzen on the road 1 1 1 我想编辑其中一个文件 以添加一些缺少的功能并为该项目做出贡献 如何下载该项目并
  • layout.xml 的用途是什么?

    人们为什么使用layout xml在他们的resources like
  • Android 手机应用意图

    我想在手机上启动手机应用程序作为意图 我正在使用这个代码 startActivity getPackageManager getLaunchIntentForPackage com android phone 但该函数抛出一个空指针异常 因
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • 如何将单选按钮状态保存到已保存/共享首选项?

    我可以在保存的首选项中保存字符串 但很难保存单选按钮 public class PersonalDetailsf extends Activity private SharedPreferences sharedPreferences pr
  • invalidateOptionsMenu 在片段中不起作用

    显示或隐藏项目ActionBar根据文本中是否有文本EditText or not 所以 我做了以下事情 public class NounSearch extends android app Fragment EditText seach
  • Eclipse 中的 node.js - 大多数人使用哪个插件?

    我最感兴趣的是服务器端 Web 开发 尽管能够在 Chrome 中重新部署一些部分会很好 我目前正在跑步Eclipse Indigo在 Ubuntu 上主要开发 Java Scala 程序并使用 git 到目前为止我遇到过http code
  • 有没有办法在Android上创建一个三角形按钮?

    有没有办法创建一个三角形的按钮 我知道我可以将三角形图像作为背景 但这将使三角形之外的区域可单击 有没有办法固定按钮角 X 和 Y 以便我可以将其变成三角形 您可以覆盖OnTouch http developer android com r
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • 如何在新标签 android webview 中打开链接? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经使用 webview 创建了一个 android 应用程序来显示我的网站 我什至想添加在新选项卡中打开链接的功能 但我找不到任何
  • 如何更改锁屏自定义文本(所有者信息)?

    我写了程序代码 String message This is test Settings System putString context getContentResolver Settings Secure LOCK PATTERN EN
  • WebView 在某些设备上如果不长按则不会滚动

    我有一个 WebView 设置如下 the web view mWebView WebView findViewById R id webView push the url on to the web view mWebView loadU
  • gradle-experimental:0.1.0 buildConfigField

    谁知道怎么定义buildConfigField在实验性的 gradle 插件中 android productFlavors create demo applicationId com anthonymandra rawdroid buil
  • 基于BluetoothChat示例通过蓝牙套接字发送文件

    大家好 根据我之前问的一个问题 我已经能够将文件转换为其他字节数组 以便使用以下写入方法 public void sendFile Log d TAG sending data InputStream inputStream null Ur
  • Android应用程序kill事件捕获

    我想在我的应用程序被终止时执行一些操作 可以使用哪种方法来实现此目的 我正在开发 Android 5 0 这个问题的关键在于 您必须了解您的申请是否可以收到任何 当您的应用程序在任何情况下被终止时的额外回调 下面的答案是由德文连线 http
  • Android:获取最新意图

    如何获取发送到活动的最后一个意图 的文档onNewIntent 建议我需要做这样的事情 class MyActivity public void onNewIntent Intent intent setIntent intent reac
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p

随机推荐