2014-11-14 2 views
0

Похоже, что мой onBackup вызывается, когда я запускаю adb shell bmgr run, но есть то, что выглядит как PolicyException. Кто-нибудь знает, что это значит или что вызывает это? Я стучу головой.BackupTransportService вызывает исключение при попытке резервного копирования моих данных

UPDATE: Это происходит, когда я пытаюсь использовать BackupTransportService в качестве транспорта. Использование LocalTransport в порядке. Тем не менее нужна помощь!

Вот код для MyBackupAgent

public class MyBackupAgent extends BackupAgentHelper { 

    @Override 
    public void onCreate(){ 
     Log.d("GradeTracker.MyBackupAgent", "onCreate called"); 

     FileBackupHelper myDb = new FileBackupHelper(this, "../databases/" + DBAdapter.DATABASE_NAME); 
     addHelper(DBAdapter.DATABASE_NAME, myDb); 
    } 

    @Override 
    public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, 
     ParcelFileDescriptor newState) throws IOException { 
     Log.d("GradeTracker.MyBackupAgent", "onBackup called"); 
      synchronized (DBAdapter.dbBackupLockObject) { 
        super.onBackup(oldState, data, newState); 
      } 
    } 

    @Override 
    public void onRestore(BackupDataInput data, int appVersionCode, 
        ParcelFileDescriptor newState) throws IOException { 
      Log.d("GradeTracker.MyBackupAgent", "onRestore called"); 
      synchronized (DBAdapter.dbBackupLockObject) { 
        super.onRestore(data, appVersionCode, newState); 
      } 
    } 
} 

Мои манифеста ...

<application 
     android:allowBackup="true" 
     android:backupAgent="MyBackupAgent" ...> 
    <meta-data android:name="com.google.android.backup.api_key" 
      android:value="<myKey>" />  
</application> 

Стек след

11-13 19:53:44.481: D/PerformBackupTask(352): starting agent for backup of BackupRequest{pkg=com.NsouthProductions.gradetrackerpro} 
11-13 19:53:44.501: I/BackupManagerService(352): got agent [email protected] 
11-13 19:53:44.501: D/PerformBackupTask(352): invokeAgentForBackup on com.NsouthProductions.gradetrackerpro 
11-13 19:53:44.511: V/BackupServiceBinder(30648): doBackup() invoked 
11-13 19:53:44.511: D/GradeTracker.MyBackupAgent(30648): onBackup called 
11-13 19:53:44.511: D/BackupHelperDispatcher(30648): handling existing helper 'GradeTracker.db' [email protected] 
11-13 19:53:45.382: E/BackupTransportService(352): com.google.android.backup.BackupRequestGenerator$PolicyException: server error in app com.NsouthProductions.gradetrackerpro: code 7 
11-13 19:53:45.382: E/BackupTransportService(352): at com.google.android.backup.BackupRequestGenerator.parseResponse(BackupRequestGenerator.java:360) 
11-13 19:53:45.382: E/BackupTransportService(352): at com.google.android.backup.BackupTransportService.sendRequestLocked(BackupTransportService.java:849) 
11-13 19:53:45.382: E/BackupTransportService(352): at com.google.android.backup.BackupTransportService.access$600(BackupTransportService.java:78) 
11-13 19:53:45.382: E/BackupTransportService(352): at com.google.android.backup.BackupTransportService$1.finishBackup(BackupTransportService.java:444) 
11-13 19:53:45.382: E/BackupTransportService(352): at com.android.server.BackupManagerService$PerformBackupTask.operationComplete(BackupManagerService.java:2320) 
11-13 19:53:45.382: E/BackupTransportService(352): at com.android.server.BackupManagerService$BackupHandler.handleMessage(BackupManagerService.java:572) 
11-13 19:53:45.552: I/PerformBackupTask(352): Backup pass finished. 

ответ

1

решаемые его! Мой Android Backup Service был явно плохим. У моего имени пакета в моем манифесте есть несколько заглавных букв, поэтому я подумал: «Может быть, я должен убедиться, что мой ключ был сгенерирован с именем пакета с той же капитализацией». Поэтому я снова зарегистрировался с прямой копией/вставкой имени моего пакета из моего манифеста, и у меня появился другой ключ, который теперь работает.

Смежные вопросы