在 Android 上继续使用旧的 Google 驱动器 API
Keep using the old Google Drive API on Android
我有一个现有的应用程序,不幸的是我已经很长时间没有时间更新它了。我现在正在尝试对它做一些工作,但它不会编译。
它最初是一个 Eclipse 项目,所以我现在将它导入 Android Studio,我的 build.gradle 有以下内容:
dependencies {
/*compile 'com.google.android.gms:play-services-ads:7.0.0'
compile 'com.google.android.gms:play-services-drive:7.0.0'
compile 'com.google.android.gms:play-services-identity:7.0.0'*/
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/android-support-v4.jar')
compile files('libs/commons-codec-1.4-javadoc.jar')
compile files('libs/commons-codec-1.4-sources.jar')
compile files('libs/commons-codec-1.4.jar')
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:support-v4:21.0.0'
compile 'com.BoardiesITSolutions:CritiMon:1.0'
compile 'com.BoardiesITSolutions:Library:1.1'
compile 'com.google.android.gms:play-services:4.1.+'
compile('com.google.api-client:google-api-client-xml:1.17.0-rc') {
exclude group: 'com.google.android.google-play-services'
}
compile 'com.google.http-client:google-http-client-gson:1.17.0-rc'
compile('com.google.api-client:google-api-client-android:1.17.0-rc') {
exclude group: 'com.google.android.google-play-services'
}
compile 'com.google.apis:google-api-services-drive:v2+'
}
我试图将其指向 Google Play Services 的旧版本,下面的代码最初可以工作,但现在不再工作了。
Drive service = getDriveService(credential);
String fileId = null;
FileList file = service.files().list().execute();
问题是services.files()
无法解决。
我假设这是因为驱动器 API 正在更新,所以有没有办法让我可以使用支持上述代码的先前版本。
目前我没有时间更新驱动器 API 但我需要修复某人报告的错误。
更新
我发现以下 https://developers.google.com/drive/web/migration 页面说除了文件 ID 的变量名外没有任何实际变化,但一切都是一样的,所以我不明白为什么 service.files() 函数将找不到。
为了将评论 (esp @kroikie) 合并为一个答案,您混淆了 REST API 的 Java 库(可以 运行 在 Java/Android并由 com.google.api.services.drive.Drive) 和 Android 的 Google 驱动器 API 表示("GDAA" - 它只是读取和写入 [=25 上的驱动器存储区域=] 并让 Android Drive 应用程序进行同步,并由 com.google.android.gms.drive.Drive 表示)。
这个人 The method permissions() is undefined for the type Drive 做了同样的事情,这表明 Google 文档没有明确说明 Android-Drive 集成可以通过两种不同的方式取得成就。我看到人们将 REST API 称为 "old api", 这完全是用词不当 ,这表明有些人得出了错误的结论,即 GDAA 取代了REST API 它肯定不会。
因此,在您的情况下,从您的应用中删除 com.google.android.gms.*
就没问题了。
我有一个现有的应用程序,不幸的是我已经很长时间没有时间更新它了。我现在正在尝试对它做一些工作,但它不会编译。
它最初是一个 Eclipse 项目,所以我现在将它导入 Android Studio,我的 build.gradle 有以下内容:
dependencies {
/*compile 'com.google.android.gms:play-services-ads:7.0.0'
compile 'com.google.android.gms:play-services-drive:7.0.0'
compile 'com.google.android.gms:play-services-identity:7.0.0'*/
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/android-support-v4.jar')
compile files('libs/commons-codec-1.4-javadoc.jar')
compile files('libs/commons-codec-1.4-sources.jar')
compile files('libs/commons-codec-1.4.jar')
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:support-v4:21.0.0'
compile 'com.BoardiesITSolutions:CritiMon:1.0'
compile 'com.BoardiesITSolutions:Library:1.1'
compile 'com.google.android.gms:play-services:4.1.+'
compile('com.google.api-client:google-api-client-xml:1.17.0-rc') {
exclude group: 'com.google.android.google-play-services'
}
compile 'com.google.http-client:google-http-client-gson:1.17.0-rc'
compile('com.google.api-client:google-api-client-android:1.17.0-rc') {
exclude group: 'com.google.android.google-play-services'
}
compile 'com.google.apis:google-api-services-drive:v2+'
}
我试图将其指向 Google Play Services 的旧版本,下面的代码最初可以工作,但现在不再工作了。
Drive service = getDriveService(credential);
String fileId = null;
FileList file = service.files().list().execute();
问题是services.files()
无法解决。
我假设这是因为驱动器 API 正在更新,所以有没有办法让我可以使用支持上述代码的先前版本。
目前我没有时间更新驱动器 API 但我需要修复某人报告的错误。
更新
我发现以下 https://developers.google.com/drive/web/migration 页面说除了文件 ID 的变量名外没有任何实际变化,但一切都是一样的,所以我不明白为什么 service.files() 函数将找不到。
为了将评论 (esp @kroikie) 合并为一个答案,您混淆了 REST API 的 Java 库(可以 运行 在 Java/Android并由 com.google.api.services.drive.Drive) 和 Android 的 Google 驱动器 API 表示("GDAA" - 它只是读取和写入 [=25 上的驱动器存储区域=] 并让 Android Drive 应用程序进行同步,并由 com.google.android.gms.drive.Drive 表示)。
这个人 The method permissions() is undefined for the type Drive 做了同样的事情,这表明 Google 文档没有明确说明 Android-Drive 集成可以通过两种不同的方式取得成就。我看到人们将 REST API 称为 "old api", 这完全是用词不当 ,这表明有些人得出了错误的结论,即 GDAA 取代了REST API 它肯定不会。
因此,在您的情况下,从您的应用中删除 com.google.android.gms.*
就没问题了。