我已经创建了备份规则文件,就像示例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]
错误消息完全没有信息,也不能通过谷歌搜索(几乎所有单词都很短)。 谁能解释,这***想要我做什么?如何解决此问题?
答案 0 :(得分:3)
我猜这是一个IDE错误,因为the example from doc:
<?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>
会清除错误
默认情况下,“自动备份”几乎包含所有应用程序文件。
答案 1 :(得分:2)
这绝对是 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 是正确的,而 lint 检查是错误的。
在生成调试 APK 时,这些属性不是必需的(无论构建是否完成),但是当您执行 Android Studio 的 Generate Signed Bundle / APK 时它们是必需的,否则构建会因这些错误而失败。
other answer 说您可以删除 <include domain="sharedpref" path="."/>
是不正确的。这将导致不包含任何共享首选项。
错误已被提出 here。
答案 2 :(得分:0)
错误消息表明,域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
xmlns:android="http://schemas.android.com/apk/res/android">
<include domain="sharedpref" path="."/>
</full-backup-content>
使用“设备文件资源管理器”并转到/data/user/0/com.yourapp/shared_prefs
...
您可以看到哪些文件属于哪个域-甚至在该域中也可以找到它们。