You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用android.enableR8.fullMode=true时Google API的R8规则及官方资源问询

Google API库R8规则相关疑问

旧版本适配规则

在某Android应用旧版本中,仅需以下R8规则即可保留Google API库中所需的GSON相关部分:

-keepclassmembers class * {
  @com.google.api.client.util.Key <fields>;
}

升级后的问题与临时解决方案

将库和Android Studio从Eel升级至Flamingo后,应用的代码缩减版本出现仅运行时才会暴露的问题,原因是R8默认以android.enableR8.fullMode=true运行。

经排查,添加以下额外规则可解决该问题:

-keepclassmembers class com.google.api.client.googleapis.json.GoogleJsonError {
    public *;
}

-keepclassmembers class com.google.api.client.googleapis.json.GoogleJsonError$* {
    public *; 
}

-keepclassmembers public class  com.google.api.services.drive.model.* extends com.google.api.client.json.GenericJson {
    public *;
}

-keepclassmembers public class  com.google.api.services.sheets.v4.model.* extends com.google.api.client.json.GenericJson {
    public *;
}

-keepclassmembers public class  com.google.api.services.calendar.model.* extends com.google.api.client.json.GenericJson {
    public *;
}

可总结出明确规律:必须显式保留model包下的类。

官方资源疑问

这种靠测试排查问题的体验很差,且R8或库的未来变更可能使这些经验规则失效。按常理,Google API库应附带由开发者基于库知识及全面测试确定的必要R8(即ProGuard)规则,请问是否存在这类官方资源?


内容的提问来源于stack exchange,提问作者Mike Hanafey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:02:05