Невозможно ссылаться на необработанные ресурсы из XML-файла конфигурации безопасности сети

Я пытаюсь следовать документации 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, которые мне нужно включить, но у меня две проблемы:

  1. Я не могу создать каталог в своей необработанной папке, когда я это делаю, он создает каталог в моей файловой системе, но не в моем каталоге необработанных ресурсов в проекте.

  2. Вместо каталога я просто ссылаюсь на свои файлы .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, и я не уверен, почему это не работает, как описано.

7
0
1 881
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно Доступ к документации по ресурсам имя ресурса

the filename, excluding the extension

Итак, вам нужно удалить .crt из вашего src:

<certificates src = "@raw/cert_cubic_trusted_ca-sha256"/>

Боже мой, да, ты прав. И я уже проверил эту ссылку на документ и полностью пропустил ее, ха-ха. Боже, я мог бы задать тот же вопрос через год, насколько я знаю. Большое спасибо!

ThePartyTurtle 13.03.2019 17:59

Другие вопросы по теме