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

Android使用Proguard禁用日志后GeoCoder相关setText功能异常

问题原因

你当前使用的-assumenosideeffects class android.util.Log {public *;}规则过于宽泛,触发了Proguard的优化误判:

  • -assumenosideeffects的作用是告诉Proguard被标记的方法无副作用,若方法返回值未被使用,Proguard会直接移除整个方法调用。你直接匹配了android.util.Log的所有公共方法,导致优化逻辑溢出,将和Log参数关联的业务代码也判定为无副作用的死代码删除。
  • 从你提供的现象来看,Proguard错误移除了GeoCoderApi.getAdressfromLatLng相关的执行链路,所以才会出现定位正常、地图中心点设置正常,但地址赋值逻辑完全不执行的问题。
修复方案

只需要将原有的宽泛规则替换为仅针对Log打印方法的精准规则即可,既可以保留Release包移除日志的效果,又不会误删业务代码:

-assumenosideeffects class android.util.Log {
    public static *** v(...);
    public static *** d(...);
    public static *** i(...);
    public static *** w(...);
    public static *** e(...);
    public static *** wtf(...);
}

修改规则后重新打Release包即可验证功能恢复正常。

内容的提问来源于stack exchange,提问作者Ouaaqil Youssef

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:24:00