多模块Kotlin Android项目自定义TLS证书找不到问题求助
解决多模块Android应用中Network Security Config引用跨模块证书的问题
核心问题是默认情况下,network_security_config.xml只会在当前模块(这里是主app模块)的资源目录里查找证书,而你的证书存在webserver模块中,所以需要明确指定资源的模块来源。
解决步骤:
- 明确引用跨模块资源的格式
在network_security_config.xml的证书路径中,加上webserver模块的包名前缀,格式为@[模块包名]:raw/ca_cert。比如你的webserver模块包名是com.yourcompany.webserver,配置要改成:
<network-security-config> <domain-config> <domain includeSubdomains="true">你的服务器域名</domain> <trust-anchors> <certificates src="@com.yourcompany.webserver:raw/ca_cert" /> </trust-anchors> </domain-config> </network-security-config>
- 确认模块依赖关系
检查主app模块的build.gradle(或build.gradle.kts)是否已经正确依赖webserver模块:
dependencies { implementation project(':webserver') }
- 验证资源的正确性
- 确保webserver模块的
src/main/res/raw目录下确实存在ca_cert.pem文件,文件名全小写(Android资源文件名不允许大写或特殊字符)。 - 如果webserver是library模块,默认资源是对外暴露的,不需要额外配置;如果是动态feature模块,需确保feature模块的资源能被主app访问。
内容的提问来源于stack exchange,提问作者Manuel Lucas
相关产品推荐
相关产品推荐

