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,避免与其他库重名。
➡️