java - 带有 Java 客户端库的 Google Drive V3 在 Android 上创建无标题文件
问题描述
我已使用我的 Android 应用程序成功从 V2 迁移到 V3。当我通过 Android Studio 直接在设备上安装它时它可以工作,但是当我手动或通过 Google Play 商店安装 APK 时,我会得到“无标题”文件,用于任何创建或上传,无论是文件还是文件夹。
我通过 Java 客户端 API 库https://developers.google.com/resources/api-libraries/documentation/drive/v3/java/latest/使用 Drive V3 API 。
GoogleSignInOptions signInOptions =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestScopes(new Scope(DriveScopes.DRIVE_FILE))
.build();
GoogleSignInClient googleSignInClient = GoogleSignIn.getClient(mContext, signInOptions);
...
Drive googleDriveService =
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
credential)
.setApplicationName("Foo bar")
.build();
...
File folderMetaData = new File ()
.setName("test")
.setMimeType("application/vnd.google-apps.folder")
.setParents(Collections.singletonList("root"));
return mDriveService.files().create(folderMetaData)
.setFields("id, name")
.execute();
正如我所说,仅将部署从 Android Studio 安装更改为签名的 APK 会使创建/上传不再起作用。有什么提示吗?
解决方案
将此添加到您的 proguard 文件中应该可以工作:
-keep class * extends com.google.api.client.json.GenericJson {
*;
}
-keep class com.google.api.services.drive.** {
*;
}
推荐阅读
- error-handling - Power BI - 处理不存在的参数并在表中返回有效参数的数据
- sql - 在临时表的列中显示多行
- powershell - 如何使用 powershell 重命名 blob 文件
- graphql - 查询以获取按关系中的项目数排序的数据
- events - 如何在 Flutter 上实现事件监听器或委托
- kubernetes - Kubernetes 中并发 pod 数量增加导致资源限制突破
- nginx - 设置 root 后,nginx 配置仍提供默认主页
- excel - 无法重命名excel文件
- episerver - 在 EpiServer 中删除用户时发生错误 - ArgumentNullException: The type cannot be null
- javascript - Using localstorage setItem/getItem with react-redux