2016-02-19 4 views
2

У меня есть старое приложение, которое я обновляю, добавив службу резервного копирования android. Я использую BackupAgent, чтобы взять контент из таблицы в моей базе данных SQLite и записать его в файл JSON, а затем загрузить его. Я использовал http://developer.android.com/guide/topics/data/backup.html в качестве ссылки при кодировании этого.BackupAgent - Не удается восстановить пакет

Он отлично работает на моем Nexus 5, который работает под управлением Android 6.0 Marshmallow. onBackup вызывается, когда он должен быть, и так onRestore. Проблема возникает, когда я пытаюсь выполнить приложение на устройствах, которые запускают Lollipop (и, вероятно, устройства, которые являются pre-Lollipop).

Невозможно восстановить пакет com.zecave.petter.zeblocker

ли выход из консоли, когда я использую bmgr и я использую леденец устройств.

LogCat дает мне это сообщение:

02-19 15: 59: 07.892: E/RestoreSession (948): java.lang.NullPointerException: Попытка вызвать виртуальный метод «недействительным com.google.android .gms.backup.dra (android.content.Context)»на объектную ссылку нулевой

кто-то знает, почему это работает на моем Nexus 5 с Зефир, но не на двух устройствах я пробовал работает 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.

+0

Это странно. После некоторых дополнительных инвестиций исключение не только бросается при попытке восстановить мое собственное приложение, но и со всеми приложениями, которые я пробовал. Это происходит на моем собственном устройстве и моем значительном другом устройстве, на котором работает Lollipop. Синхронизация appdata включена (я имею в виду, я могу делать резервные копии, но не восстанавливать). Nexus 5 с Marshmallow не имеет этой проблемы. – Petroj

+0

Возможный дубликат [BackupAgent: «невозможно восстановить пакет ...»] (https://stackoverflow.com/questions/4662952/backupagent-unable-to-restore-package) –

ответ

0

Попробуйте изменить транспорт на:

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

Google накладывает ограничение резервного копирования, и может быть, поэтому, почему данные не подкреплены.