首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android自动备份:传输拒绝包

Android自动备份:传输拒绝包
EN

Stack Overflow用户
提问于 2016-11-10 14:30:11
回答 2查看 3.6K关注 0票数 5

我正在试着测试Android自动备份。我在一个7.1设备上,应用程序清单包含:android:fullBackupOnly="true"。当我发出一个adb shell bmgr backupnow <package>命令(所以post用占位符替换我的包名)时,我得到了一个看起来像是失败的东西:

代码语言:javascript
运行
复制
Running backup for 1 requested packages.
Package @pm@ with result: Success
Package <package> with result: Transport rejected package
Backup finished with result: Success

如果我将清单更改为android:fullBackupOnly="false" (即使用旧的K/V备份),然后重新发出backupnow命令,我得到的结果看起来是成功的:

代码语言:javascript
运行
复制
Running backup for 1 requested packages.
Package @pm@ with result: Success
Package <package> with result: Success
Backup finished with result: Success

查看拒绝案例中的Logcat,我看到了以下内容:

代码语言:javascript
运行
复制
11-10 09:27:59.660 1683-1683/? D/AndroidRuntime: Calling main entry com.android.commands.bmgr.Bmgr
11-10 09:27:59.669 1035-2498/? V/PerformBackupTask: Beginning backup of 0 targets
11-10 09:27:59.677 1035-2498/? D/PerformBackupTask: invokeAgentForBackup on @pm@
11-10 09:27:59.685 1035-2498/? I/BackupRestoreController: Getting widget state for user: 0
11-10 09:27:59.691 1035-2498/? D/PerformBackupTask: Starting full backups for: [<package>]
11-10 09:27:59.692 1035-2498/? I/BackupManagerService: K/V backup pass finished.
11-10 09:27:59.693 1035-1699/? I/PFTBT: Initiating full-data transport backup of <package>
11-10 09:27:59.695 12554-12566/? I/Backup: [GmsBackupTransport] Attempt to do full backup on <package>
11-10 09:27:59.697 1035-1699/? I/PFTBT: Transport rejected backup of <package>, skipping
11-10 09:27:59.697 1035-1699/? I/PFTBT: Unbinding agent in <package>
11-10 09:27:59.697 1035-1699/? W/ActivityManager: Unbinding backup agent with no active backup
11-10 09:27:59.697 1035-1699/? I/PFTBT: Full backup completed with status: 0
11-10 09:27:59.697 1035-1699/? I/BackupManagerService: Full data backup pass finished.

这些都是相关的内容:

代码语言:javascript
运行
复制
11-10 09:27:59.695 12554-12566/? I/Backup: [GmsBackupTransport] Attempt to do full backup on <package>
11-10 09:27:59.697 1035-1699/? I/PFTBT: Transport rejected backup of <package>, skipping

为什么完全/自动备份失败?

以下是成功案例(K/V)的完整逻辑:

代码语言:javascript
运行
复制
11-10 09:31:21.750 2200-2200/? D/AndroidRuntime: Calling main entry com.android.commands.bmgr.Bmgr
11-10 09:31:21.762 1035-2498/? V/PerformBackupTask: Beginning backup of 1 targets
11-10 09:31:21.768 1035-2498/? D/PerformBackupTask: invokeAgentForBackup on @pm@
11-10 09:31:21.775 1035-2498/? I/BackupRestoreController: Getting widget state for user: 0
11-10 09:31:21.780 1035-2498/? D/PerformBackupTask: starting key/value backup of BackupRequest{pkg= <package>}
11-10 09:31:21.783 1035-2498/? D/BackupManagerService: awaiting agent for ApplicationInfo{b68136a  <package>}
11-10 09:31:21.793 1035-1815/? D/BackupManagerService: agentConnected pkg= <package> agent=android.os.BinderProxy@6750684
11-10 09:31:21.793 1035-2498/? I/BackupManagerService: got agent android.app.IBackupAgent$Stub$Proxy@5e82e6d
11-10 09:31:21.793 1035-2498/? D/PerformBackupTask: invokeAgentForBackup on  <package>
11-10 09:31:21.796 1908-1920/ <package> D/BackupAgent: onBackup
11-10 09:31:21.796 1908-1920/ <package> D/BackupHelperDispatcher: handling existing helper 'data'  <package>.io.DbBackupHelper@35d5ebe
11-10 09:31:21.798 1908-1920/ <package> D/BackupHelperDispatcher: handling existing helper 'prefs' android.app.backup.SharedPreferencesBackupHelper@6936b1f
11-10 09:31:21.800 1035-2498/? I/BackupRestoreController: Getting widget state for user: 0
11-10 09:31:21.805 2200-2200/? D/AndroidRuntime: Shutting down VM
11-10 09:31:21.807 1035-2498/? I/BackupManagerService: K/V backup pass finished.
EN

回答 2

Stack Overflow用户

发布于 2016-12-02 13:44:30

https://developer.android.com/guide/topics/data/testingbackup.html的文档说明如下:

超额限额 如果在logcat中看到以下消息: I/PFTBT:传输拒绝的包备份,跳过 -或者 I/PFTBT:超过货包运输配额:包裹 您的应用程序已超过配额,并已被禁止备份该设备上的数据。若要解除禁令,请工厂重置设备或更改备份帐户。

票数 0
EN

Stack Overflow用户

发布于 2017-04-28 07:33:14

我得到了同样的错误,并最终找到了解决方案:

targetSdkLevel in build.gradle必须设置为23或更高版本。

如果targetSdkLevel设置为21,则该项目将在模拟器中编译并运行良好。但是为了能够使用Google作为备份目标(我猜我们大多数人都在使用),它必须至少有23个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40530028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档