8

AccountManager を使用してアカウント情報を保存し、オーセンティケーターを実装しようとしていますが、電話をクラッシュさせる以下のような例外が発生し続けます。サンプル コードと比較すると、これは、SyncAdapter および関連するサービスを持っていない (または特に必要としていない) ためと思われます。SyncAdapter を追加せずに AccountManager を使用するコツはありますか?

よろしく

フィル

I/AuthenticatorActivity( 8526): onAuthenticationResult(true)
I/AuthenticatorActivity( 8526): finishLogin()
W/dalvikvm( 8108): threadid=13: thread exiting with uncaught exception (group=0x
4001b170)
E/AndroidRuntime( 8108): Uncaught handler: thread android.server.ServerThread ex
iting due to uncaught exception
E/AndroidRuntime( 8108): *** EXCEPTION IN SYSTEM PROCESS.  System will crash.
E/AndroidRuntime( 8108): java.lang.NullPointerException
E/AndroidRuntime( 8108):        at com.android.settings.ManageAccountsSettings.o
nSyncStateUpdated(ManageAccountsSettings.java:187)
E/AndroidRuntime( 8108):        at com.android.settings.ManageAccountsSettings.o
nAccountsUpdated(ManageAccountsSettings.java:244)
E/AndroidRuntime( 8108):        at android.accounts.AccountManager$10.run(Accoun
tManager.java:826)
E/AndroidRuntime( 8108):        at android.os.Handler.handleCallback(Handler.jav
a:587)
E/AndroidRuntime( 8108):        at android.os.Handler.dispatchMessage(Handler.ja
va:92)
E/AndroidRuntime( 8108):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 8108):        at com.android.server.ServerThread.run(SystemSer
ver.java:435)
4

4 に答える 4

7

私も同じ問題を抱えてる。私の場合はユーザー入力が必要ないため、 addAccount-method にアカウントを直接追加する AccountAuthenticator を実装しました。

アカウントを作成した後に例外が発生し、[アカウントと同期] 設定画面を表示したいと考えています。「Dev Tools > AccountsTester」で動作するため、作成が原因ではありません。

編集:これが説明だと思います。試してみます。

「[...] クラッシュは、アカウントと同期を処理する Android コードの文書化されていない仮定によって引き起こされます。それらは非常に密接に関連しています。システムでアカウントを取得した後、「アカウントと同期」設定プラグインが、コンテンツ サービスを使用して、インテント「android.content.SyncAdapter」を実装するシステム上のサービスをスキャンします。

私たちのコードはこれを実装していないため、検索は手ぶらで行われ、コードはこれが起こらないと想定していたため、BAM、null ポインター例外、およびクラッシュが発生しました。[...]" から: http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

于 2010-08-17T11:34:34.397 に答える
2

最後に、SyncAdapter と ContentProvider を追加する必要がありました。ごくわずかなスタブの実装ですが、うまく機能しているように見えました。また、2.2では問題が発生しないことがわかったと思います

于 2010-10-21T16:10:17.480 に答える
1

これは既知の問題です: http://code.google.com/p/android/issues/detail?id=5009

対応する同期アダプタが見つからないため、NPE が発生します。

于 2011-01-10T03:00:03.517 に答える
0

http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/

タイトルにもかかわらず、Google の参照実装とは異なり、ここ (スタンドアロン プロジェクト) のコードには SyncAdapter が見当たりません。

あなたの例外は何か他のものが原因だと思います...

于 2010-06-28T17:33:41.527 に答える