在Android自动备份中破译“由于当时无法处理而拒绝运输的包裹”错误

问题描述

我一直在尝试遵循Android Auto Backup文档页面上的说明。我不断遇到错误,无法完成应用程序的备份。

首先,我在AndroidManifest中添加了以下两行:

<application
  ...
  android:allowBackup="true"
  android:fullBackupContent="@xml/my_backup_rules"
  ...
</application>

我在my_backup_rules.xml中用以下几行创建了一个android/app/src/main/res/xml文件

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <include domain="file" path="db.realm" />
</full-backup-content>

根据Android Studiodb.realm文件很大,为18MB,因此这是我计划包含在备份中的唯一文件,以保持在25MB的备份配额之内。

test documentation之后,我运行adb shell bmgr list transports并看到以下输出

* daemon started successfully
    com.android.localtransport/.LocalTransport
    com.google.android.gms/.backup.migrate.service.D2dTransport
  * com.google.android.gms/.backup.BackupTransportService

但是,当我运行下一个测试adb shell bmgr backupNow <PACKAGE>时,看到以下错误

Running incremental backup for 1 requested packages.
Package @pm@ with result: Transport rejected package because it wasn't able to process it at the time
Backup finished with result: Transport error

adb logcat中,我看到以下内容

08-12 12:19:28.007  2123  2123 V Bmgr    : Running backupNow for user:0
08-12 12:19:28.017   906  2524 D keyvalueBackupTask: Spinning thread key-value-backup-208
08-12 12:19:28.019   906  2147 D PFTBT   : backupmanager pftbt token=211e7180
08-12 12:19:28.023   906  2147 V keyvalueBackupTask: Beginning backup of 1 targets
08-12 12:19:28.059   906   906 I TransportClient: BackupTransportService#438: Notifying [KVBT.startTask()] transport = IBackupTransport
08-12 12:19:28.062   906  2147 W Binder  : Outgoing transactions from this process must be FLAG_ONEWAY
08-12 12:19:28.062   906  2147 W Binder  : java.lang.Throwable
08-12 12:19:28.062   906  2147 W Binder  :      at android.os.BinderProxy.transact(BinderProxy.java:480)
08-12 12:19:28.062   906  2147 W Binder  :      at com.android.internal.backup.IBackupTransport$Stub$Proxy.name(IBackupTransport.java:869)
08-12 12:19:28.062   906  2147 W Binder  :      at com.android.server.backup.keyvalue.keyvalueBackupTask.startTask(keyvalueBackupTask.java:414)
08-12 12:19:28.062   906  2147 W Binder  :      at com.android.server.backup.keyvalue.keyvalueBackupTask.run(keyvalueBackupTask.java:344)
08-12 12:19:28.062   906  2147 W Binder  :      at java.lang.Thread.run(Thread.java:919)
08-12 12:19:28.065   906  2147 D keyvalueBackupTask: Starting key-value backup of @pm@
08-12 12:19:28.095   906  2147 D keyvalueBackupTask: Invoking agent on @pm@
08-12 12:19:28.095   906  5761 D BackupTransportManager: Transport com.google.android.gms/.backup.BackupTransportService updated its attributes
08-12 12:19:28.104   906  2147 V BackupAgentTimeout: getKvBackupAgentTimeoutMillis(): 30000
08-12 12:19:28.116   906  2147 I BackupRestoreController: Getting widget state for user: 0
08-12 12:19:28.157 29692 31059 I Backup  : [GmsBackupTransport] Performing encrypted kv backup: @pm@
08-12 12:19:28.252   906  2147 I RecoverableAppKeyStore: Get 0/10114/com.google.android.gms.backup/folsom/<TOKEN>
08-12 12:19:28.319   497   497 W /vendor/bin/hw/[email protected]: Not performing software digesting for symmetric cipher keys
08-12 12:19:28.421   497   497 I chatty  : uid=9999(nobody) [email protected] identical 2 lines
08-12 12:19:28.421   497   497 W /vendor/bin/hw/[email protected]: Not performing software digesting for symmetric cipher keys
08-12 12:19:28.455 29692 29714 I gle.android.gm: Waiting for a blocking GC ProfileSaver
08-12 12:19:28.482 29692 29714 I gle.android.gm: WaitForGcToComplete blocked ProfileSaver on HeapTrim for 26.699ms
08-12 12:19:28.497 29692 29704 I gle.android.gm: WaitForGcToComplete blocked Background on ProfileSaver for 14.700ms
08-12 12:19:29.159 29692 31059 I Backup  : [GmsBackupTransport] Backup finished for @pm@
08-12 12:19:29.178   906  2147 I keyvalueBackupTask: K/V backup pass finished
08-12 12:19:29.179   906  2147 D keyvalueBackupTask: Starting full backups for: [<PACKAGE>]
08-12 12:19:29.184   906  2160 I PFTBT   : Initiating full-data transport backup of <PACKAGE> token: <TOKEN>
08-12 12:19:29.193 29692 31059 I Backup  : [GmsBackupTransport] Attempt to do full backup on <PACKAGE>
08-12 12:19:29.294 29692 31059 I Backup  : [FullBackupSession] Using encrypted processor for <PACKAGE>
08-12 12:19:29.335   906  2160 I RecoverableAppKeyStore: Get 0/10114/com.google.android.gms.backup/folsom/<TOKEN>
08-12 12:19:29.365   906  2160 I PFTBT   : Transport rejected backup of <PACKAGE>,skipping
08-12 12:19:29.365   906  2160 I PFTBT   : Unbinding agent in <PACKAGE>
08-12 12:19:29.366   906  2160 W ActivityManager: Unbinding backup agent with no active backup
08-12 12:19:29.366   906  2160 I PFTBT   : Full backup completed with status: 0

根据Troubleshooting文档,Transport rejected backup of <PACKAGE>,skipping错误消息表明我已超出配额。但是我的db.realm文件小于25MB,这是我设置为在.xml中备份的唯一内容,因此我不确定为什么会出现此错误

与此同时,在测试设备(Pixel XL)上,我可以转到“设置”>“系统”>“备份”,并确认“备份到Google云端硬盘”已打开。其他应用程序的备份正在运行。我在设备上设置了锁定屏幕,因为这似乎是我遇到的早期问题之一,导致我无法运行备份。

关于如何克服此错误的任何建议?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)