【问题标题】:BackupAgent - Unable to restore packageBackupAgent - 无法恢复包
【发布时间】:2016-02-19 16:08:53
【问题描述】:

我有一个旧应用程序,我一直在通过添加 android 备份服务进行更新。我使用 BackupAgent 从我的 SQLite 数据库中的表中获取内容并将其写入 JSON 文件,然后上传。我在编码时使用了http://developer.android.com/guide/topics/data/backup.html 作为参考。

它在我运行 Android 6.0 Marshmallow 的 Nexus 5 上运行良好。 onBackup 在它应该调用的时候被调用,onRestore 也是如此。当我在运行 Lollipop 的设备(以及可能是前 Lollipop 的设备)上尝试应用程序时,就会出现问题。

无法恢复包 com.zecave.petter.zeblocker

当我使用 bmgr 并且我正在使用 Lollipop 设备时,是控制台的输出。

LogCat 给了我这个信息:

02-19 15:59:07.892: E/RestoreSession(948): java.lang.NullPointerException: 尝试调用虚拟方法 'void com.google.android.gms.backup.d.r.a(android.content.Context) ' 在空对象引用上

有人知道为什么这适用于我的 Nexus 5 和 Marshmallow,但不适用于我尝试过的两台运行 Lollipop 的设备吗?上面的消息对我来说没有任何意义,因为我不是从代码调用恢复,而是从命令行调用。

清单的一部分:

    android:allowBackup="true"
    android:icon="@drawable/icon_lightgreen"
    android:label="@string/app_name"
    android:theme="@style/MyMaterialTheme"
    android:restoreAnyVersion="true"
    android:backupAgent="com.zecave.petter.zeblocker.tools.BlacklistBackupAgent" >

    <meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAINjrn1*..." />

我都试过了

android:backupAgent=".tools.BlacklistBackupAgent" 
android:backupAgent=".BlacklistBackupAgent" 

但结果相同。

编辑: 请参阅下面的评论以获取更多说明。显然,尝试在 Lollipop 设备上恢复时,不仅我的应用程序会出现此错误。

【问题讨论】:

  • 这很奇怪。经过更多的投资后,不仅在尝试恢复我自己的应用程序时抛出异常,而且在我尝试过的所有应用程序中都会抛出异常。这发生在我自己的设备和运行 Lollipop 的其他重要设备上。应用数据同步已启用(我的意思是,我可以备份,但不能恢复)。带有 Marshmallow 的 Nexus 5 没有这个问题。

标签: android backup android-backup-service


【解决方案1】:

尝试将传输更改为:

adb shell bmgr transport android/com.android.internal.backup.LocalTransport

Google 施加了备份限制,也许这就是为什么不备份数据的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2018-06-26
    • 2017-04-10
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多