首页 > 解决方案 > 带有 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 会使创建/上传不再起作用。有什么提示吗?

标签: javaandroidgoogle-drive-api

解决方案


将此添加到您的 proguard 文件中应该可以工作:

   -keep class * extends com.google.api.client.json.GenericJson {
    *;
   }
   -keep class com.google.api.services.drive.** {
    *;
   }

推荐阅读