所以我在应用程序清单中添加了一些东西,我看到我的应用程序标签上有一个警告:
在SDK版本23及更高版本上,您的应用数据将自动备份并在应用安装时恢复。考虑添加属性android:fullBackupContent来指定一个@xml资源,该资源用于配置要备份的文件。
然后我搜索了那个。显然,只有2个标签:<include>
和<exclude>
。我不想从备份中排除任何文件,因为我没有任何本地相关文件,并且我不需要任何<include>
标记
<include>:
指定要备份的一组资源,而不是让系统默认备份您应用中的所有数据。
当我看到如果我没有放置任何<include>
标签时,系统将back up all data in your app by default
,这正是我想要的。
现在我有了这个问题:我应该添加backup_content.xml
文件,但是因为默认设置是好的,所以是空的,或者根本不添加文件? (在这种情况下,Android Studio会抱怨)
答案 0 :(得分:19)
快速解决方案:
的AndroidManifest.xml
<application
android:allowBackup="true"
android:fullBackupContent="true"
...
...
...
</application>
有关详细信息,请参阅:https://developer.android.com/guide/topics/data/autobackup
答案 1 :(得分:3)
你可以添加android:fullBackupContent="true"
在androidmanifest.xml
答案 2 :(得分:3)
我也遇到了同样的问题,但找不到答案。因此,为了备份所有内容,我尝试制作这样的 backup.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
</full-backup-content>
它工作正常。
编辑 06/04/21
刚刚从 Google IssueTracker
得到官方答复:
您的问题的答案出现在标题为包含和排除文件的部分的开头:“默认情况下,系统备份几乎所有应用程序数据”。 为了备份所有支持的数据,请勿在清单文件中包含 android:fullBackupContent。
答案 3 :(得分:2)
正确的解决方法:
警告是因为缺少 <full-backup-content>
资源。
为此,我们在应用程序标签中有 android:fullBackupContent
,它指向一个 XML 文件,其中包含自动备份的完整备份规则。这些规则决定备份哪些文件。
示例:
<application ...
android:fullBackupContent="@xml/my_backup_rules">
</application>
在 my_backup_rules.xml
目录中创建一个名为 res/xml/
的 XML 文件。在文件中,添加带有 <include>
和 <exclude>
元素的规则。以下示例备份除 device.xml 之外的所有共享首选项:
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="device.xml"/>
</full-backup-content>
更多信息参考:
https://developer.android.com/guide/topics/data/autobackup https://betterprogramming.pub/androids-attribute-android-allowbackup-demystified-114b88087e3b
答案 4 :(得分:1)
<application
android:allowBackup="true"
android:fullBackupOnly="true">
</application>
答案 5 :(得分:0)
我认为当你没有定义任何排除或包含它时会进行完整备份。
:指定要备份的一组资源,,而不是让系统默认备份您应用中的所有数据。如果指定元素,则系统仅备份使用此元素指定的资源。您可以使用多个元素
指定要备份的多组资源
答案 6 :(得分:0)
如果您要隐藏警告,但不需要从备份中排除任何文件,您也可以将tools:ignore="AllowBackup"
添加到application
中的AndroidManifest.xml
标记中禁止显示警告(或使用查看警告详细信息时获得的Suppress
按钮。)