問題タブ [android-backup-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - backupAgent を起動しようとすると ClassNotFoundException が発生するのはなぜですか
を使用して、Android アプリでBackupAgentHelper
をバックアップします。SharedPreferences
エミュレーター (Android 1.6 および 2.2) と自分の電話 (Android 2.3.3) でテストしましたが、すべて正常に動作します。しかし、今日、開発者コンソールに次のようなクラッシュ レポートが表示されました。
backupAgent は、マニフェストの application タグで次のように宣言されています。
どうやら、クラスMyBackupAgent
が存在するため、ビルドでき.apk
、いくつかのデバイスで問題なく動作します。では、ここでクラスが見つからないのはどうしてでしょうか? 上記のメッセージで気付いたことの 1 つは、パッケージ名と末尾に「-2」が追加されたパスにアプリがインストールされているように見えることです。で完全なパッケージ名とクラスを指定したため、これによりクラスローダーがパッケージ内のクラスを認識できなくなる可能性がありますandroid:backupAgent
か、それともその部分は無関係ですか? クラスが見つからない理由を誰でも理解できますか?
言及する価値があるのは、私のアプリは SD カードにインストールできるということです。
上記のメッセージで、私の実際のパッケージ名を com.xxx.yyy に置き換えてすみません。
android - システム全体のバックアップがプログラムで有効になっているかどうかを確認します
ユーザーがAndroidアプリ内からクラウドにアプリケーションデータをバックアップするオプションを有効にしているかどうかを判断できるかどうか疑問に思いました。
これは、コマンドラインまたはadbシェルから次のように呼び出すことで判断できます。
androidはコードからそうするためのAPIを提供していますか?
android - AndroidシステムがBackupAgentを使用する場合の不思議なClassNotFoundException
AndroidシステムがBackupAgentを使用してGoogleクラウドへのバックアップを行うことを決定したときから、アプリに関するエラーレポートがいくつかあります。SharedPreferencesBackupHelperを使用しています。スタックトレースは次のようになります(私の実際のパッケージ名は以下でcom.xxx.yyyに置き換えられます):
Android 2.3.3を実行している自分の携帯電話で、自分でプログラムがクラッシュすることもあります。このプログラムのクラッシュで私を困惑させるのは、クラス「MyBackupAgent」がパッケージに存在することを確かに知っていることです。また、クラウドへのバックアップが、かつてクラッシュしたのと同じ電話で機能していることも確かです。
私はこの問題の理由が何であるかについての解決策をネット上でかなり検索しました。同様の問題で私が見つけたすべてのケース、つまり、クラスがapkに存在していても、PathClassLoaderからClassNotFoundExceptionがスローされるという、共通点が1つあります。それらはすべて、末尾に「-1」または「-2」があり、apkがインストールされているパッケージ名ディレクトリの最後にあります。
私のエラーレポートでは、これらはdalvik.system.PathClassLoaderがバックアップクラスを検索する場所の異なる名前です。
/mnt/asec/com.xxx.yyy-1/pkg.apk
/data/app/com.xxx.yyy-1.apk
/mnt/asec/com.xxx.yyy-2/pkg.apk
ここで間違った湖で釣りをしているのかもしれませんが、パッケージ名ディレクトリの最後に追加された「-1」と「-2」はどういう意味ですか。問題はこれに関連している可能性がありますか?共有設定のバックアップをスケジュールするようにシステムに指示するだけなので、問題が私のコードにあるのではないかと思います。次に、Androidシステムは、将来の適切なタイミングでバックアップアクションを実行します。これにより、クラッシュが発生します。スタックトレースを見ると、私のコードは言及されていません。apkでバックアップクラスを検索するのはすべてのシステムルーチンであり、何らかの理由でそれを見つけることができません。
マニフェストのアプリケーションタグにandroid:name属性を設定していません。これを読み取ると、同様のエラーが発生する可能性があります。
誰かがこれを引き起こす可能性のある手がかりを持っていますか?またはさらに良いことに、これが発生するのを回避する方法。
android - Androidでonbackupメソッドを呼び出すことができません
バックアップとリカバリを実装したいのですが、onBackup()
メソッドが実行されません。マニフェストファイルの私のコードは
Activity
バックアップしたいアイテムを追加または更新すると、コードが
そしてMyBackupAgent
私が書いたファイルに
しかし、ここではonBackup()
メソッドでは何も出力されないので、onbackup メソッドに入っているかどうかをどのように識別できますか?
android - Android BackupManager と同じアカウントにリンクされた複数のデバイス
同じ Google アカウントにリンクされた複数のデバイス (スマートフォンやタブレットなど)に同じ有効なアプリがインストールされている場合、 AndroidBackupManager
はどのように動作するのか、常に疑問に思っています。私だけではないようですが、これに関する仕様は見つかりませんでした。BackupManager
このシナリオでのあなたの経験は何ですか? そのケースを説明する公式リソースはありますか?
android - カスタム BackupAgent に対して onRestore が呼び出されない
私の Android アプリには、バックアップして復元したいデータがいくつかあります。その目的のために、のカスタム実装を作成しましたBackupAgent
。
以下に示すように、私のマニフェストにはバックアップエージェントが含まれています
エミュレーター (Android 2.2) でテストしていますが、バックアップ サービス API キーを含めましたが、ローカル バックアップ トランスポートを使用するため必要ありません。
バックアップと復元のテストを行うために、次のことを行いました。
- アプリケーションがインストールされた状態でエミュレーターを起動します。
バックアップを有効にする
adb shell bmgr enable true
私のコードの一部を呼び出して、BackupManager クラスの dataChanged メソッドが呼び出されました。
バックアップ操作を手動で開始する
adb シェル bmgr 実行
カスタム BackupAgent の onBackup メソッドが呼び出されたことをログで確認しました。
- アプリをアンインストールする
- アプリを再インストールする
- onRestore メソッドが呼び出されたかどうかをログで確認します。
問題は、onRestore メソッドが呼び出されていないようで、その理由がわかりません。アプリを再インストールするか、adb を使用して手動で復元をトリガーすると、コンソールに次のように表示されます。
およびログ内のこの他の
しかし、onRestore への呼び出しが実際に行われたことはわかりません (最初にいくつかのログ ステートメントがありますか?
これはあなたに起こったことがありますか?呼び出されたのに、onRestore メソッドが呼び出されないことによる理由はありますonBackup
か?
android - Android BackupManager と私のアプリ db: ベスト アプローチ
BackupManager
アプリの DB をバックアップするためにを使用したいと思います。BackupAgent
ドキュメントにはとについて記載されており、DB がある場合BackupAgentHelper
に使用することが記載されています。BackupAgent
一方、 には物事を非常に簡単にBackupAgentHelper
するきちんとした機能があります。FileBackupHelper
私の質問:
1) FileBackupHelper
/data/data/<myapp>/databases にある .sqlite ファイルのバックアップに使用できますか?
2)そうでない場合、SQLiteOpenHelper
のメソッドを内部onBackup()
で使用できonRestore()
ますか(onCreate / onUpgrade to backup / restore)?
android - BackupAgent には、デバイスごとに 1 つのクラウド バックアップがありますか?
多くのデバイスが接続された 1 つの Google アカウントを持っています (マーケット Web サイトの設定を参照してください)。アプリをバックアップしてBackupAgent
別のデバイスをワイプすると、ワイプされたデバイスは何も復元しません。あるデバイスに「Nexus S」、別のデバイスに「Nexus One」というテキストを保存すると、「Nexus S」と「Nexus One」が復元されます。
それは正常な動作ですか?BackupAgent
iCloudが許可する独自のバックアップで使用できますか?
android - Android BackupRestore の例が Android 2.3 Nexus One で機能しない
を使用してサンプルプロジェクトを作成しましたBackupRestore
。Android Backup Service にキーを登録しに行きました。私は以下を得ました:
キーは次のとおりです。AEdPqrEAAAAIW4p30C1GTNjzBOqWrb0clI7_OCWxm3ddIgkKhw このキーは、パッケージ名のアプリに適しています。
com.example.android.backuprestore このキーを AndroidManifest.xml ファイルに指定し、次の要素を <application> 要素内に配置します。
<meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIW4p30C1GTNjzBOqWrb0clI7_OCWxm3ddIgkKhw" />
アプリを起動して「ベーコン」+「トマト」を選択すると、 を使用して保留中のバックアップが表示されdumpsys backup
ます。だから私はそれを強制的に実行し(bgmr run
=>保留中は消えます)、アプリをアンインストールします。
復元すると、logcatは「復元データがありません」と表示し、もちろん、設定は正しい情報で表示されません。
私が間違っている可能性のあるアイデアはありますか?
android - Androidでは、アンインストール後にSharedPreferencesを保持する方法はありますか
いくつかのアプリケーションメタデータをに保持していますSharedPreferences
。アプリケーションをアンインストールして再インストールするたびに、SharedPreferences
が削除されます。
ユーザーがアンインストールして再インストールした場合に古いデータを復元できるように、それを維持する方法はありますか?