我创建了备份规则文件,就像示例中一样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: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时,它们是必要的,否则构建会因这些错误而失败。
另一个答案说你可以删除<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
。。。
在那里你可以看到哪些文件属于哪个域,或者它们是否存在。