- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试读取我的 GCS 存储桶,但看到了一个有趣的行为。通过 Android Studio(作为调试变体)运行我的应用程序时,我能够下载对象。当我创建签名 APK(或作为发布变体运行)时,我无法再下载对象并收到 404 错误。
这是我的授权方式:
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;
}
打印出我的凭证,运行时是这样的:
com.google.api.client.googleapis.auth.oauth2.GoogleCredential@42ed8060
当我收到错误时:
bpr@46096240
由于在创建签名版本时出现问题,我认为我的 proguard-rules 出错了,但我添加的唯一一行是:
-dontwarn sun.misc.*
希望有人以前见过这种行为!任何帮助将不胜感激!!
珍妮
最佳答案
我能够解决我的问题。我深入研究了 proguard-rules。进行此更新解决了我的问题:
# Needed to keep generic types and @Key annotations accessed via reflection
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
-keepclassmembers class * {
@com.google.api.client.util.Key <fields>;
}
# Needed by Guava
# See https://groups.google.com/forum/#!topic/guava-discuss/YCZzeCiIVoI
-dontwarn sun.misc.Unsafe
-dontwarn com.google.common.collect.MinMaxPriorityQueue
# Needed by google-http-client-android when linking against an older platform version
-dontwarn com.google.api.client.extensions.android.**
# Needed by google-api-client-android when linking against an older platform version
-dontwarn com.google.api.client.googleapis.extensions.android.**
关于java - Android GoogleCredential 调试与发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28384643/
我正在使用 GCP Java API 为 BigQuery 和 Transfer API 创建 GPC 客户端。对于每个客户,我需要启动不同类型的凭据 - GoogleCredential javad
在 OAuth2 的 Google 文档中,此处描述了使用身份验证 token 构建 GoogleCredential: Credential and Credential Store 特别提供了这段
背景 对于我正在开发的应用程序,它使用 People API 使用凭据(用户登录)。用户提供凭据后,我可以访问各种 Google API,例如 People API。一个示例是获取联系人列表: htt
下面的代码在执行时抛出此错误: Caused by: java.lang.StackOverflowError at com.google.auth.oauth2.GoogleCredenti
这是我通过构建器自定义的 Credential 和 Analytics 对象: GoogleCredential credential = new GoogleCredential .
我一直在使用以下 Java 方法在 GCS 中设置存储桶通知。 private void setBucketNotification(String bucketName, String topicId
我正在使用服务帐户模型和 Google 的 Java API 来检索和修改用户。 我能够使用类似于 Google 示例的代码成功创建 GoogleCredential 对象: GoogleCreden
我正在尝试读取我的 GCS 存储桶,但看到了一个有趣的行为。通过 Android Studio(作为调试变体)运行我的应用程序时,我能够下载对象。当我创建签名 APK(或作为发布变体运行)时,我无法再
我正在为我的一个应用程序编写单元测试,其中一部分需要模拟 google-api-java-client 的 GoogleCredential 对象。我们使用服务帐户在 SOA 中的服务之间进行身份验证
我正在开发一个 java spring 项目,该项目要求我向 Google Pub/Sub 发布消息。我需要在 post 请求中将访问 token 作为 Authorization header 发送
我正在尝试获取访问 token 以使用 Google Play Android Developer API,并且我使用 the Google API Java Client documentation
我已经从 saved-access-token 和 saved-refresh-token 初始化了 GoogleCredential 变量。但我不知道检查它是否过期? 我知道 GoogleCrede
我想为 Google Drive 设计一个 Android 文件查看器。 首先,我使用 Google Android API 实现了该应用程序,如下所示, private void retrieveN
我想使用 Python 获取我在 Google Cloud 上的所有 Dataproc 集群的列表。 我将服务帐户凭据存储在一个 JSON key 文件中,其位置由环境变量 GOOGLE_APPLIC
我想创建一个可以访问我的 Firebase 数据库的服务器应用程序。 我遵循了本指南:https://firebase.google.com/docs/admin/setup#initialize_t
我正在制作一个 java 命令行应用程序,该应用程序打包在一个使用 Google 的一些 API 的 JAR 文件中。 我需要从私钥“Credentials.p12”设置 GoogleCredenti
我正在为 Android Publisher v2 和 Oauth2 v2 使用 Java SDK。创建服务帐户后,我得到了一个 JSON 格式的 Google Play Android Develo
我正在开发一个服务帐户应用程序来获取用于访问下游服务的 token 。但是,我遇到了编译问题。 Eclipse提示错误“The type com.google.api.client.auth.oaut
我正在尝试在我的 Android 应用程序中运行此代码: public Bigquery createAuthorizedClient() throws IOException { f
我正在开发一个服务帐户应用程序来获取用于访问下游服务的 token 。但是,我遇到了编译问题。 Eclipse提示错误“The type com.google.api.client.auth.oaut
我是一名优秀的程序员,十分优秀!