安卓完整备份:"file.xml is not in an included path"



我创建了备份规则文件,就像示例中一样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>

安卓工作室说有错误:

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

错误消息完全没有信息,也不可在谷歌上搜索(几乎所有的单词都很短(。有人能解释一下,这个***想从我这里得到什么吗?如何解决此问题?

我想这是一个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>会清除错误

默认情况下,自动备份几乎包括所有应用程序文件。

这肯定是Android Studio中的一个错误,但这里有一个非常合理的解决方法。

您需要添加以下tools:ignoreXML属性来清除错误。

<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时,它们是必要的,否则构建会因这些错误而失败。

另一个答案说你可以删除<include domain="sharedpref" path="."/>是不正确的。这将导致不包括任何共享的首选项。

错误已在此处提出。

错误消息告诉域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。。。

在那里你可以看到哪些文件属于哪个域,或者它们是否存在。

最新更新