带有 Java 客户端库的 Google Drive V3 在 Android 上创建无标题文件

use*_*035 1 java android google-drive-api

我已经使用我的 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);
Run Code Online (Sandbox Code Playgroud)

...

        Drive googleDriveService =
            new Drive.Builder(
                    AndroidHttp.newCompatibleTransport(),
                    new GsonFactory(),
                    credential)
                    .setApplicationName("Foo bar")
                    .build();
Run Code Online (Sandbox Code Playgroud)

...

    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();
Run Code Online (Sandbox Code Playgroud)

正如我所说,只有将部署从 Android Studio 安装更改为签名的 APK 才会使创建/上传不再起作用。有什么提示吗?

Fra*_*ran 5

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

   -keep class * extends com.google.api.client.json.GenericJson {
    *;
   }
   -keep class com.google.api.services.drive.** {
    *;
   }
Run Code Online (Sandbox Code Playgroud)