1
我正在尝试阅读我的GCS存储桶,但看到一个有趣的行为。当通过Android Studio运行我的应用(作为调试版本)时,我可以下载对象。当我创建一个签名的APK(或作为发布版本运行)时,我不再能够下载对象并收到404错误。Android GoogleCredential调试与发布
这是我的授权方法:
GoogleCredential googleCredential = null;
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
HttpTransport httpTransport = AndroidHttp.newCompatibleTransport();
/** Authorizes the installed application to access user's protected data. */
public GoogleCredential authorize() throws Exception {
String p12Password = "****";
String keyAlias = "****";
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(getResources().openRawResource(R.raw.gcskeystore), p12Password.toCharArray());
PrivateKey privateKey = (PrivateKey)keystore.getKey(keyAlias, p12Password.toCharArray());
Set<String> scopes = new HashSet<String>();
scopes.add(StorageScopes.DEVSTORAGE_READ_WRITE);
String emailAddress = "********@developer.gserviceaccount.com";
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(emailAddress)
.setServiceAccountPrivateKey(privateKey)
.setServiceAccountScopes(scopes)
.build();
return credential;
}
打印出我的凭证,它运行的时候是这样的:
[email protected]ed8060
,这时候我收到一个错误:
[email protected]
由于创建签名版本时出现问题,因此我认为我的proguard规则正在跳闸东西了,但我唯一添加的是:
-dontwarn sun.misc.*
希望有人看到过这种类型的行为!任何帮助将不胜感激!!
Jenny