Android|FileProvider 的 authorities 重名会怎么样?

💡 原文中文,约7400字,阅读约需18分钟。
📝

内容提要

本文讲述了使用 FileProvider 进行自升级时出现的问题,解决方案是修改 authorities 避免重名。

🎯

关键要点

  • 如果有多个 FileProvider 的 authorities 重名,只有第一个配置会生效。
  • 应用的自升级功能通过 FileProvider 提供 Uri 进行安装,修改下载路径后功能失效。
  • 报错信息显示未找到配置的根路径,经过调试发现 SimplePathStrategy 的 mRoots 中没有配置的路径。
  • 确认合并后的 AndroidManifest.xml 文件中存在同名的 FileProvider,且来自第三方库,排在前面。
  • 源码分析显示,如果已有同名 authority,后面的 Provider 配置会被忽略,authority 可以用分号分隔多个。
  • pkg.providers 是按 AndroidManifest.xml 中的顺序解析的。
  • 解决方案是修改自己的 FileProvider 的 authorities,避免与其他库重名。
➡️

继续阅读