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

Я пытаюсь следовать документации 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 и добавил ссылку ndroid:networkSecurityConfig="@xml/network_security_config" в свой манифест.У меня есть файлы .crt, которые мне нужно включить, но у меня две проблемы:

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

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

1 Ответ

2 голосов
/ 13 марта 2019

В соответствии с Доступ к документации по ресурсам , имя ресурса

имя файла, без расширения

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

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