【发布时间】:2016-08-14 14:29:02
【问题描述】:
我正在开发一个应用程序,该应用程序在 Google 的私有应用程序数据文件夹中创建/更新单个文本文件。这是通过 REST v3 Drive API 完成的。
几天前它工作得很好,现在不行了。据我所知,唯一改变的是我将它上传到了 Google Play。我是
我的应用程序连接到应用程序时遇到问题,因为 service 变量返回 null。我的想法是,也许我需要一个刷新令牌或其他东西,但我无法找到任何关于如何使用 v3 API 做到这一点的信息。
非常感谢您对此的帮助。
这是我迄今为止尝试过的:
1. 创建一个新的密钥库并使用新的 sha1 指纹重新下载 google-services.json 文件
2. 禁用并重新启用 Drive API
3. 我在“发布”变体上开发我的项目,可能很糟糕,但它之前工作过
4. 用头撞墙
这里是源代码:
// Gather credentials
credential = GoogleAccountCredential.usingOAuth2(getApplicationContext(), Arrays.asList(SCOPES)).setBackOff(new ExponentialBackOff());
SharedPreferences settings = getSharedPreferences("Roblu", Context.MODE_PRIVATE);
String accountName = settings.getString("accountName", "");
credential.setSelectedAccountName(accountName);
// Start Google services
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
// This is returning null
service = new Drive.Builder(transport, jsonFactory, credential).setApplicationName("Roblu").build();
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
编辑
此行为 Drive 对象返回 null。想法?
service = new com.google.api.services.drive.Drive.Builder(transport, jsonFactory, credential).setApplicationName("Roblu").build();
【问题讨论】:
-
SHA1 指纹是否来自您用于签署已发布应用程序的同一密钥库?
-
不......我的应用程序是在不同的密钥库下发布的,但我正在使用不同的密钥库通过 adb 运行应用程序——这是一个问题吗? @x-code