Xamarin Android应用证书文件路径无效问题求助
问题排查与解决方案
核心错误点及修复步骤:
Raw目录不支持嵌套子文件夹
Android资源系统的raw目录不允许创建子文件夹,你手动创建的Resources/raw/my_ca属于无效结构。- 修复:将
certificate.pem直接移动到Resources/raw根目录下。
- 修复:将
域名配置错误
<domain>标签仅用于指定域名,不能包含路径(/api),否则无法正确匹配服务器域名。- 修复:将
<domain>内容改为mydomain.com.br。
- 修复:将
证书路径引用错误
移除子文件夹路径,直接引用raw目录下的证书文件(不需要加.pem后缀,Android资源系统会自动识别)。未在Manifest中关联网络安全配置
必须在AndroidManifest.xml的<application>标签中添加配置引用,否则网络安全规则不会生效。
修正后的配置示例:
1. 正确的文件结构:
Resources/ ├─ raw/ │ └─ certificate.pem └─ xml/ └─ network_security_config.xml
2. 修正后的network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config> <domain includeSubdomains="true">mydomain.com.br</domain> <trust-anchors> <certificates src="@raw/certificate"/> </trust-anchors> </domain-config> </network-security-config>
3. AndroidManifest.xml配置:
在<application>标签中添加:
android:networkSecurityConfig="@xml/network_security_config"
额外注意事项:
- 确保
certificate.pem的生成操作设置为AndroidResource(Visual Studio中右键文件→属性→生成操作)。 - 手动删除
obj和bin目录后重新生成解决方案,彻底清除编译缓存。
内容的提问来源于stack exchange,提问作者Gabic
相关产品推荐
相关产品推荐

