无法从网络安全配置中引用原始资源 XML
Cannot reference raw resources from Network Security Configuration XML
我正在尝试按照 Android 文档使用自定义证书 here。所需的网络配置文件是:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="@raw/extracas"/>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
我已经创建了 network_security_config.xml 并将引用 android:networkSecurityConfig="@xml/network_security_config"
添加到我的清单中。我有我需要包含的 .crt 文件,但我有两个问题:
我无法在我的原始文件夹中创建目录,当我这样做时,它会在我的文件系统中创建目录,但不会在项目的原始资源目录中创建目录。
代替目录,我只是直接在原始文件夹中引用我的 .crt 文件,但是当我尝试引用证书时,这是我的 network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="@raw/cert_cubic_trusted_ca-sha256.crt"/>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
我收到错误 "missing src resource." 的红色波浪线,当我尝试构建时,构建日志输出错误:
AGPBI: {"kind":"error","text":"error: resource raw/certname.crt (aka com.comname.appname:raw/certname.crt) not found.","sources":[{"file":"/Users/205314/project/appname/app/src/main/res/xml/network_security_config.xml","position":{"startLine":5}}],"original":"","tool":"AAPT"}
:app:processDebugResources
:app:processDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to process resources, see aapt output above for details.
我不知道为什么我无法从 XML 引用原始资源文件夹中的资产或在其中创建文件夹,这似乎是我最大的问题。我可以在代码中使用 R.raw 引用原始资源,但我从来不需要使用 @raw 进行引用,而且我不确定为什么它没有按描述工作。
根据Accessing resources documentation,资源名称是
the filename, excluding the extension
因此您需要从 src
中删除 .crt
:
<certificates src="@raw/cert_cubic_trusted_ca-sha256"/>
我正在尝试按照 Android 文档使用自定义证书 here。所需的网络配置文件是:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="@raw/extracas"/>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
我已经创建了 network_security_config.xml 并将引用 android:networkSecurityConfig="@xml/network_security_config"
添加到我的清单中。我有我需要包含的 .crt 文件,但我有两个问题:
我无法在我的原始文件夹中创建目录,当我这样做时,它会在我的文件系统中创建目录,但不会在项目的原始资源目录中创建目录。
代替目录,我只是直接在原始文件夹中引用我的 .crt 文件,但是当我尝试引用证书时,这是我的 network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <certificates src="@raw/cert_cubic_trusted_ca-sha256.crt"/> <certificates src="system"/> </trust-anchors> </base-config> </network-security-config>
我收到错误 "missing src resource." 的红色波浪线,当我尝试构建时,构建日志输出错误:
AGPBI: {"kind":"error","text":"error: resource raw/certname.crt (aka com.comname.appname:raw/certname.crt) not found.","sources":[{"file":"/Users/205314/project/appname/app/src/main/res/xml/network_security_config.xml","position":{"startLine":5}}],"original":"","tool":"AAPT"}
:app:processDebugResources
:app:processDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to process resources, see aapt output above for details.
我不知道为什么我无法从 XML 引用原始资源文件夹中的资产或在其中创建文件夹,这似乎是我最大的问题。我可以在代码中使用 R.raw 引用原始资源,但我从来不需要使用 @raw 进行引用,而且我不确定为什么它没有按描述工作。
根据Accessing resources documentation,资源名称是
the filename, excluding the extension
因此您需要从 src
中删除 .crt
:
<certificates src="@raw/cert_cubic_trusted_ca-sha256"/>