BackupManager#requestRestoreで例外が発生


概要

Androidのバックアップ機能に悩まされる日々が続いております。
動作検証も問題なく、意気込んでKey/Valueバックアップ機能を実装したアプリをリリースしたところ、様々な問題が発生しました。
リリース後、Google Play Consoleのクラッシュレポートに次々とクラッシュが…
この記事では、BackupManager#requestRestoreで発生した例外について触れておきます。

BackupManager#requestRestoreで例外が発生

BackupManager#requestRestoreで復元を実行したタイミングで以下の3種類の例外が発生していました。
ドキュメントやコード上にあるAPIのドキュメントにも例外が発生することの説明はなかったのですが…

  • NullPointerException
  • IllegalException
  • SecurityException

SecurityException

こちらの例外については、Fabric側にもレポートが上がってきており、android.permission.BACKUPが許可されていない内容でした。
以下のパーミッションを付与すればいいのか?

<uses-permission android:name="android.permission.BACKUP"/>