問題タブ [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.

0 投票する
1 に答える
835 参照

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 に置き換えてすみません。

0 投票する
2 に答える
1001 参照

android - システム全体のバックアップがプログラムで有効になっているかどうかを確認します

ユーザーがAndroidアプリ内からクラウドにアプリケーションデータをバックアップするオプションを有効にしているかどうかを判断できるかどうか疑問に思いました。

これは、コマンドラインまたはadbシェルから次のように呼び出すことで判断できます。

androidはコードからそうするためのAPIを提供していますか?

0 投票する
2 に答える
843 参照

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属性を設定していません。これを読み取ると、同様のエラーが発生する可能性があります。

誰かがこれを引き起こす可能性のある手がかりを持っていますか?またはさらに良いことに、これが発生するのを回避する方法。

0 投票する
5 に答える
1555 参照

android - Androidでonbackupメソッドを呼び出すことができません

バックアップとリカバリを実装したいのですが、onBackup()メソッドが実行されません。マニフェストファイルの私のコードは

Activityバックアップしたいアイテムを追加または更新すると、コードが

そしてMyBackupAgent私が書いたファイルに

しかし、ここではonBackup()メソッドでは何も出力されないので、onbackup メソッドに入っているかどうかをどのように識別できますか?

0 投票する
1 に答える
1518 参照

android - Android BackupManager と同じアカウントにリンクされた複数のデバイス

同じ Google アカウントにリンクされた複数のデバイス (スマートフォンやタブレットなど)に同じ有効なアプリがインストールされている場合、 AndroidBackupManagerはどのように動作するのか、常に疑問に思っています。私だけではないようですが、これに関する仕様は見つかりませんでした。BackupManager

このシナリオでのあなたの経験は何ですか? そのケースを説明する公式リソースはありますか?

0 投票する
2 に答える
2772 参照

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か?

0 投票する
1 に答える
963 参照

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)?

0 投票する
1 に答える
299 参照

android - BackupAgent には、デバイスごとに 1 つのクラウド バックアップがありますか?

多くのデバイスが接続された 1 つの Google アカウントを持っています (マーケット Web サイトの設定を参照してください)。アプリをバックアップしてBackupAgent別のデバイスをワイプすると、ワイプされたデバイスは何も復元しません。あるデバイスに「Nexus S」、別のデバイスに「Nexus One」というテキストを保存すると、「Nexus S」と「Nexus One」が復元されます。

それは正常な動作ですか?BackupAgentiCloudが許可する独自のバックアップで使用できますか?

0 投票する
2 に答える
831 参照

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は「復元データがありません」と表示し、もちろん、設定は正しい情報で表示されません。

私が間違っている可能性のあるアイデアはありますか?

0 投票する
8 に答える
17047 参照

android - Androidでは、アンインストール後にSharedPreferencesを保持する方法はありますか

いくつかのアプリケーションメタデータをに保持していますSharedPreferences。アプリケーションをアンインストールして再インストールするたびに、SharedPreferencesが削除されます。

ユーザーがアンインストールして再インストールした場合に古いデータを復元できるように、それを維持する方法はありますか?