Полная резервная копия Android: file.xml отсутствует во включенном пути

Я создал файл правил резервного копирования, как в примере https://developer.android.com/guide/topics/data/autobackup:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content xmlns:android="http://schemas.android.com/apk/res/android">
    <include
        domain="sharedpref"
        path="." />
    <exclude
        domain="sharedpref"
        path="nonceStorage.xml" />
    <exclude
        domain="sharedpref"
        path="localStorage.xml" />
</full-backup-content>

и Android Studio говорят, что есть ошибки:

Error:(8, 15) `nonceStorage.xml` is not in an included path [FullBackupContent]
Error:(11, 15) `localStorage.xml` is not in an included path [FullBackupContent]

Сообщение об ошибке совершенно неинформативно, и его нельзя погуглить (почти все слова очень короткие). Кто-нибудь может объяснить, чего этот *** хочет от меня? Как исправить эту проблему?


person babay    schedule 05.08.2018    source источник
comment
Он просто говорит, что ваш exclude nonceStorage.xml не находится ни в каких <include .. путях?   -  person Torxed    schedule 11.11.2018
comment
Я хочу исключить этот файл. И я думаю, что это включено в '.' дорожка. Это похоже на пример на developer.android.com/guide/topics/data/autobackup < / а>   -  person babay    schedule 12.11.2018


Ответы (3)


Я предполагаю, что это ошибка IDE, потому что пример из документа:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <include domain="sharedpref" path="."/>
    <exclude domain="sharedpref" path="device.xml"/>
</full-backup-content>

показывает ту же ошибку на device.xml.

Удаление <include> очищает ошибку, если вы просто хотите исключить некоторые файлы, потому что в документе говорится

По умолчанию Автозагрузка включает почти все файлы приложений.

person Dewey Reed    schedule 18.11.2018
comment
Хорошо ли работает в вашем случае, удалив ‹include›? - person Suresh; 13.03.2020
comment
@ Суреш Да. После удаления и повторной установки содержимое приложения возвращается. - person Dewey Reed; 13.03.2020
comment
удаление include не приводит к включению в резервную копию общих настроек. - person Mark; 12.03.2021

Это определенно ошибка в Android Studio, но есть очень разумный обходной путь.

Для устранения ошибок необходимо добавить следующий атрибут tools:ignore XML.

<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="nonceStorage.xml"
    tools:ignore="FullBackupContent" />
<exclude domain="sharedpref" path="localStorage.xml"
    tools:ignore="FullBackupContent" />

Я проверил эти результаты в ожидаемых общих предпочтениях. Другими словами, XML правильный, а проверка ворса - неправильная.

При создании отладочных APK эти атрибуты не нужны (сборка завершается независимо), но они необходимы, когда вы делаете Android Studio Generate Signed Bundle / APK, в противном случае сборка выйдет из строя с этими ошибками.

другой ответ, в котором говорится, что вы можете просто удалить <include domain="sharedpref" path="."/>, неверен. Это не приведет к включению ни одного из общих предпочтений.

Ошибка возникла здесь.

person Mark    schedule 12.03.2021

сообщение об ошибке сообщает, что в домене sharedpref нет таких файлов, которые нужно исключить:

Error:(8, 15) `nonceStorage.xml` is not in an included path [FullBackupContent]
Error:(11, 15) `localStorage.xml` is not in an included path [FullBackupContent]

возможно, это домен root, но, не включая этот домен, исключать их нет необходимости.

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>

    <include domain="sharedpref" path="."/>

</full-backup-content>

воспользуйтесь «Проводником устройства» и перейдите к /data/user/0/com.yourapp/shared_prefs ...

там вы можете увидеть, какие файлы к какому домену принадлежат - и есть ли они там вообще.

person Martin Zeitler    schedule 16.11.2018