【问题标题】:Google drive file.getId() is null only on release buildGoogle 驱动器 file.getId() 仅在发布版本时为空
【发布时间】:2018-09-07 02:41:34
【问题描述】:

我正在使用 Google Drive API V2 版本创建文件夹并将文件上传到文件夹中。它在调试版本上工作得非常好,但在发布版本上,file.getId() 对于文件夹来说是 null

这是它创建的无标题文件夹的图像:https://ibb.co/fJMyAK

您可以在以下位置找到完整的文档:https://developers.google.com/drive/api/v2/folder

File fileMetadata = new File();
fileMetadata.setTitle("Invoices");
fileMetadata.setMimeType("application/vnd.google-apps.folder");

File file = driveService.files().insert(fileMetadata)
    .setFields("id")
    .execute();
System.out.println("Folder ID: " + file.getId());

我可以看到该文件夹​​正在谷歌驱动器上创建,但它显示为无标题。

我已进入 Google Api 控制台,确保在 api 控制台中正确输入了发布构建密钥库 SHA1 密钥并且包名称正确。

对此的任何帮助将不胜感激!

【问题讨论】:

  • 您需要检查 SHA1 密钥以进行发布和调试构建,获取发布 SHA1 密钥并在项目信息中更新它
  • 您已将您的问题标记为“google-api-java-client “google-drive-android-api”。这些不是一回事,所以它们是你在用吗?
  • @quicklearner 我确保为调试和发布版本正确输入了 SHA1 密钥。我添加了两个键。您是否只允许使用一个 SHA1 密钥?
  • 您应该删除调试密钥并重试,确保该密钥对于带有项目详细信息的发布版本是正确的

标签: android google-api google-drive-api google-drive-android-api


【解决方案1】:

我也遇到了这个问题。这是由于 proguard 规则而发生的。它剥离了一个实际需要的类。为了修复它,请将以下链接添加到您的 proguard-rules.pro 文件中。

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多