2014-01-15 43 views
1

我使用AccountManager創建了一個新帳戶,它對Android 2.3+正常工作,但對於Android 2.1,它使手機的地址簿崩潰時嘗試查看聯繫人細節。Android 2.1:我的帳戶身份驗證器導致手機通訊簿崩潰

賬戶的定義如下:

type: com.example.android.authenticators.ABCAuthenticator.account

name: Contacts ABC

崩潰,我看到試圖打開一個聯繫人的詳細活動(而不是在我的應用程序,它工作正常時, ,但在摩托羅拉2.1的本地聯繫人應用程序)是:

V/ContactsListActivity(1667): onListItemClick :Uri = content://com.android.contacts/contacts/lookup/0r42-29292929/42 
I/ActivityManager(1017): Starting activity: Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/contacts/lookup/0r42-29292929/42 cmp=com.android.contacts/.ViewContactActivity } 
D/AndroidRuntime(1667): Shutting down VM 
W/dalvikvm(1667): threadid=1: thread exiting with uncaught exception (group=0x4001ac68) 
E/AndroidRuntime(1667): Uncaught handler: thread main exiting due to uncaught exception 
E/AndroidRuntime(1667): java.lang.IllegalStateException: Couldn't find authenticator for specific account type 
E/AndroidRuntime(1667): at com.android.contacts.model.Sources.findAuthenticator(Sources.java:253) 
E/AndroidRuntime(1667): at com.android.contacts.model.Sources.queryAccounts(Sources.java:193) 
E/AndroidRuntime(1667): at com.android.contacts.model.Sources.<init>(Sources.java:109) 
E/AndroidRuntime(1667): at com.android.contacts.model.Sources.getInstance(Sources.java:93) 
E/AndroidRuntime(1667): at com.android.contacts.ViewContactActivity.buildEntries(ViewContactActivity.java:1372) 
E/AndroidRuntime(1667): at com.android.contacts.ViewContactActivity.bindData(ViewContactActivity.java:681) 
E/AndroidRuntime(1667): at com.android.contacts.ViewContactActivity.considerBindData(ViewContactActivity.java:674) 
E/AndroidRuntime(1667): at com.android.contacts.ViewContactActivity.onQueryComplete(ViewContactActivity.java:542) 
E/AndroidRuntime(1667): at com.android.contacts.util.NotifyingAsyncQueryHandler.onQueryComplete(NotifyingAsyncQueryHandler.java:65) 
E/AndroidRuntime(1667): at android.content.AsyncQueryHandler.handleMessage(AsyncQueryHandler.java:408) 
E/AndroidRuntime(1667): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(1667): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(1667): at android.app.ActivityThread.main(ActivityThread.java:4695) 
E/AndroidRuntime(1667): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(1667): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(1667): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
E/AndroidRuntime(1667): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:663) 
E/AndroidRuntime(1667): at dalvik.system.NativeStart.main(Native Method) 
I/Process (1017): Sending signal. PID: 1667 SIG: 3 
I/dalvikvm(1667): threadid=3: reacting to signal 3 

它似乎試圖找到身份驗證器,但它沒有找到它......但爲什麼? Android 2.1的身份驗證器的名稱/類型是否有任何限制?有任何想法嗎?

+0

原來我的同步適配器使用了android:accountType屬性的@string引用,對於Android 2.1,它需要是硬編碼的字符串,而不是引用。 – s1m3n

回答

0

原來,我的同步適配器對android:accountType屬性使用了@string引用,對於Android 2.1,它需要是硬編碼的字符串,而不是引用。

相關問題