Я пытаюсь следовать документации Android по использованию пользовательских сертификатов здесь. Желаемый файл конфигурации сети:
<?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>
Я получаю красную волнистую линию с ошибкой «отсутствует ресурс src», и когда я пытаюсь построить, журнал сборки выводит ошибку:
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, и я не уверен, почему это не работает, как описано.
Согласно Доступ к документации по ресурсам имя ресурса
the filename, excluding the extension
Итак, вам нужно удалить .crt из вашего src:
<certificates src = "@raw/cert_cubic_trusted_ca-sha256"/>
Боже мой, да, ты прав. И я уже проверил эту ссылку на документ и полностью пропустил ее, ха-ха. Боже, я мог бы задать тот же вопрос через год, насколько я знаю. Большое спасибо!