1

我的应用程序与 google drive sdk 集成。从 Eclipse 运行时,它按预期工作,但是使用 proguard 混淆的构建,我得到以下错误。proguarded build 使用不同于 eclipse 的 keystore 签名(使用 debug keystore 签名)。在我的 Google API 控制台中,我创建了 2 个客户端 ID,每个客户端 ID 都有来自每个密钥库的 SHA1。

可能是由proguard的一些问题引起的?还有其他建议吗?

03-29 15:08:50.845: E/error(24742): com.google.a.a.b.b.c: 403 Forbidden
03-29 15:08:50.845: E/error(24742): {
03-29 15:08:50.845: E/error(24742):   "code": 403,
03-29 15:08:50.845: E/error(24742):   "errors": [
03-29 15:08:50.845: E/error(24742):     {
03-29 15:08:50.845: E/error(24742):       "domain": "usageLimits",
03-29 15:08:50.845: E/error(24742):       "message": "Access Not Configured",
03-29 15:08:50.845: E/error(24742):       "reason": "accessNotConfigured"
03-29 15:08:50.845: E/error(24742):     }
03-29 15:08:50.845: E/error(24742):   ],
03-29 15:08:50.845: E/error(24742):   "message": "Access Not Configured"
03-29 15:08:50.845: E/error(24742): }
03-29 15:08:50.845: E/error(24742):     at com.google.a.a.b.d.a.c.b(Unknown Source)
4

1 回答 1

1

通过将以下内容添加到我的 proguard 配置中来解决此问题,可在以下链接中找到。鉴于错误消息,令人惊讶的是这是一个混淆问题。

-keep class com.google.** { *;}
-keep interface com.google.** { *;}
-dontwarn com.google.**

-dontwarn sun.misc.Unsafe
-dontwarn com.google.common.collect.MinMaxPriorityQueue
-keepattributes *Annotation*,Signature
-keep class * extends com.google.api.client.json.GenericJson {
*;
}
-keep class com.google.api.services.drive.** {
*;
}

Google Drive API 不能很好地与 ProGuard (NPE) 配合使用

于 2013-03-29T18:14:14.177 回答