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