K-9 Mail (本家版 v3107,3108) で Gmail連絡先の名前が表示されるけど、エラーになる

さて、ふと思い立って本家 K-9 Mail の最新版を入れてみたところ、どうやら Gmailの「連絡先」に登録している名前 が表示されるようになっていました。

青い文字で名前が表示されているのがお分かりでしょうか? K-9 Mail (本家版 v3107,3108) で Gmail連絡先の名前が表示されるけど、エラーになるK-9 Mail(v3108)の受信一覧

一番上の受信メールは名前表示されていませんが、これはGmailの「連絡先」に 登録されていないメールアドレス から送られてきたメールです。古いバージョンでは、このようにメールアドレスだけの表示でした。

ちなみに、 差出人名が設定されているメール も名前で表示されます。(灰色で表示されます) K-9 Mail (本家版 v3107,3108) で Gmail連絡先の名前が表示されるけど、エラーになるK-9 Mail(v3108)の受信リスト

Gmail の「連絡先」から名前表示してくれるなんて便利!

…と思っていたら、「連絡先」から名前表示されているメールだけが開けないバグがあるようです。

[2010.09.30 追記] 本家版で、連絡先が表示されるようになりましたー。
K-9 Mail (本家版 v3110) で Gmail連絡先が表示されるようになりました!

「連絡先」の名前が表示されているメールを開こうとすると、本文が全く表示されません。 K-9 Mail (本家版 v3107,3108) で Gmail連絡先の名前が表示されるけど、エラーになるK-9 Mail (v3108) error画面

以下、aLogcat で「連絡先」から名前表示されているメールを開くときのログを取ってみました (ログは長いのでスクロールしています)。

I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2fa7eb28 duration=1
D/alogcat ( 2536): stopping …
W/InputManagerService( 958): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@2fb214d8
D/alogcat ( 2536): stopping …
D/alogcat ( 2536): paused
W/IInputConnectionWrapper( 2536): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.fsck.k9/.activity.Accounts }
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.FolderList (has extras) }
W/IInputConnectionWrapper( 1072): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.FolderList: 341 ms (total 365 ms)
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageList (has extras) }
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageList: 1071 ms (total 1071 ms)
I/k9 ( 3195): MessageList sending message MessageReference{accountUuid = ‘b7251efe-7fe0-4824-bede-e62d4ea1d0de’, folderName = ‘携帯’, uid = ‘587’}
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageView (has extras) }
I/NotificationService( 958): enqueueToast pkg=com.fsck.k9 callback=android.app.ITransientNotification$Stub$Proxy@2f95d4b8 duration=1
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageView: 825 ms (total 825 ms)
W/InputManagerService( 958): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@2f74f068 (uid=10078 pid=3195)
W/IInputConnectionWrapper( 3195): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Stopping service: org.satok.gweather/.UpdateService
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.jtb.alogcat/.LogActivity }
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f986680 duration=1
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f911548 duration=1
D/alogcat ( 2536): resumed
D/alogcat ( 2536): stopping …
W/IInputConnectionWrapper( 1072): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity org.jtb.alogcat/.LogActivity: 203 ms (total 203 ms)

「拡張デバッグログ」を追加した状態でのログがこちら。

I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2fa4ce20 duration=1
D/alogcat ( 2559): stopping …
W/InputManagerService( 958): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@2f768dc0
D/alogcat ( 2559): stopping …
D/alogcat ( 2559): paused
W/IInputConnectionWrapper( 2559): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.fsck.k9/.activity.Accounts }
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.FolderList (has extras) }
I/k9 ( 2572): Running Foreground command ‘getAccountStats:Gmail’, seq = 9
D/k9 ( 2572): Account.getStats() on Gmail took 6 ms; loading 15 took 4 ms; evaluating took 2 ms
I/k9 ( 2572): Foreground Command ‘getAccountStats:Gmail’ completed
W/IInputConnectionWrapper( 1098): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.FolderList: 262 ms (total 284 ms)
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageList (has extras) }
I/k9 ( 2572): Running Foreground command ‘getFolderUnread:Gmail:携帯’, seq = 10
I/k9 ( 2572): Foreground Command ‘getFolderUnread:Gmail:携帯’ completed
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageList: 316 ms (total 316 ms)
V/k9 ( 2572): Got ack that callbackRunner finished
I/k9 ( 2572): MessageList sending message MessageReference{accountUuid = ‘ec5d34c0-2c2d-4ab7-bbba-37404c50d60d’, folderName = ‘携帯’, uid = ‘582’}
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageView (has extras) }
D/k9 ( 2572): MessageView got message MessageReference{accountUuid = ‘ec5d34c0-2c2d-4ab7-bbba-37404c50d60d’, folderName = ‘携帯’, uid = ‘582’}
D/k9 ( 2572): MessageView displaying message MessageReference{accountUuid = ‘ec5d34c0-2c2d-4ab7-bbba-37404c50d60d’, folderName = ‘携帯’, uid = ‘582’}
I/NotificationService( 958): enqueueToast pkg=com.fsck.k9 callback=android.app.ITransientNotification$Stub$Proxy@2fa1bc18 duration=1
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageView: 603 ms (total 603 ms)
I/ActivityManager( 958): Stopping service: org.satok.gweather/.UpdateService
I/k9 ( 2572): Running Foreground command ‘getFolderUnread:Gmail:携帯’, seq = 11
I/k9 ( 2572): Foreground Command ‘getFolderUnread:Gmail:携帯’ completed
V/k9 ( 2572): Got ack that callbackRunner finished
I/k9 ( 2572): Running Foreground command ‘getAccountStats:Gmail’, seq = 12
D/k9 ( 2572): Account.getStats() on Gmail took 4 ms; loading 15 took 3 ms; evaluating took 1 ms
I/k9 ( 2572): Foreground Command ‘getAccountStats:Gmail’ completed
W/InputManagerService( 958): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@2faf9aa8 (uid=10078 pid=2572)
W/IInputConnectionWrapper( 2572): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.jtb.alogcat/.LogActivity }
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2fad1db8 duration=1
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2fb00000 duration=1
D/alogcat ( 2559): resumed
D/alogcat ( 2559): stopping …
W/IInputConnectionWrapper( 1098): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity org.jtb.alogcat/.LogActivity: 1759 ms (total 1759 ms)

…なにがなんだか分かりませんが、接続エラーと表示されているのでうまく本文が取りに行けない…って感じなのでしょうか?

こちらは、Gmailの「連絡先」とは関係ないメールを開いたときのログ。

I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f6bfbc0 duration=1
D/alogcat ( 2536): stopping …
W/InputManagerService( 958): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@2f686530
D/alogcat ( 2536): stopping …
D/alogcat ( 2536): paused
W/IInputConnectionWrapper( 2536): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.fsck.k9/.activity.Accounts }
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.FolderList (has extras) }
W/IInputConnectionWrapper( 1072): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.FolderList: 520 ms (total 540 ms)
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageList (has extras) }
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageList: 327 ms (total 327 ms)
I/k9 ( 3933): MessageList sending message MessageReference{accountUuid = ‘b7251efe-7fe0-4824-bede-e62d4ea1d0de’, folderName = ‘個人宛’, uid = ‘203’}
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageView (has extras) }
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageView: 772 ms (total 772 ms)
W/InputManagerService( 958): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@2fa10250 (uid=10078 pid=3933)
W/IInputConnectionWrapper( 3933): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.jtb.alogcat/.LogActivity }
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f738600 duration=1
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f995fb0 duration=1
D/alogcat ( 2536): stopping …
D/alogcat ( 2536): resumed
W/IInputConnectionWrapper( 1072): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity org.jtb.alogcat/.LogActivity: 241 ms (total 241 ms)
また、何度か触っていたら強制終了のエラーも出てきました。 K-9 Mail (本家版 v3107,3108) で Gmail連絡先の名前が表示されるけど、エラーになるk9mail3.108 強制終了エラー

以下は、更にスレッドを読み込むときに起きた強制終了のエラーログです。(他にも受信したメールを開くときに動揺の強制終了エラーが起きるようです)

I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f7cc7d0 duration=1
D/alogcat ( 2536): stopping …
W/InputManagerService( 958): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@2f9f99c8
D/alogcat ( 2536): stopping …
D/alogcat ( 2536): paused
W/IInputConnectionWrapper( 2536): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.fsck.k9/.activity.Accounts }
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.FolderList (has extras) }
W/IInputConnectionWrapper( 1072): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.FolderList: 196 ms (total 219 ms)
I/ActivityManager( 958): Starting activity: Intent { cmp=com.fsck.k9/.activity.MessageList (has extras) }
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.MessageList: 334 ms (total 334 ms)
I/Resources( 4074): Loaded time zone names for en_US in 423ms.
W/MimeStreamParser( 4074): Line 7: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 7: Body part ended prematurely. Higher level boundary detected or EOF reached.
W/MimeStreamParser( 4074): Line 7: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 7: Body part ended prematurely. Higher level boundary detected or EOF reached.
W/MimeStreamParser( 4074): Line 7: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 7: Body part ended prematurely. Higher level boundary detected or EOF reached.
W/MimeStreamParser( 4074): Line 7: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 7: Body part ended prematurely. Higher level boundary detected or EOF reached.
W/MimeStreamParser( 4074): Line 7: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 7: Body part ended prematurely. Higher level boundary detected or EOF reached.
W/dalvikvm( 4074): threadid=3: thread exiting with uncaught exception (group=0x2aadda10)
E/AndroidRuntime( 4074): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 4074): java.lang.NullPointerException
E/AndroidRuntime( 4074): at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:775)
E/AndroidRuntime( 4074): at com.fsck.k9.mail.Address.toFriendly(Address.java:285)
E/AndroidRuntime( 4074): at com.fsck.k9.mail.Address.toFriendly(Address.java:332)
E/AndroidRuntime( 4074): at com.fsck.k9.activity.MessageInfoHolder.populate(MessageInfoHolder.java:148)
E/AndroidRuntime( 4074): at com.fsck.k9.activity.MessageInfoHolder.(MessageInfoHolder.java:76)
E/AndroidRuntime( 4074): at com.fsck.k9.activity.MessageList$MessageListAdapter$2.run(MessageList.java:2106)
E/AndroidRuntime( 4074): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 4074): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 4074): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 4074): at android.app.ActivityThread.main(ActivityThread.java:4203)
E/AndroidRuntime( 4074): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 4074): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 4074): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
E/AndroidRuntime( 4074): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
E/AndroidRuntime( 4074): at dalvik.system.NativeStart.main(Native Method)
W/MimeStreamParser( 4074): Line 7: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 7: Body part ended prematurely. Higher level boundary detected or EOF reached.
I/ActivityManager( 958): Stopping service: org.satok.gweather/.UpdateService
W/MimeStreamParser( 4074): Line 9: Unexpected end of headers detected. Boundary detected in header or EOF reached.
W/MimeStreamParser( 4074): Line 9: Body part ended prematurely. Higher level boundary detected or EOF reached.
I/ActivityManager( 958): Process com.fsck.k9 (pid 4074) has died.
W/ActivityManager( 958): Scheduling restart of crashed service com.fsck.k9/.service.PushService in 5000ms
I/WindowManager( 958): WIN DEATH: Window{2f94db88 com.fsck.k9/com.fsck.k9.activity.FolderList paused=false}
I/WindowManager( 958): WIN DEATH: Window{2f979d38 com.fsck.k9/com.fsck.k9.activity.MessageList paused=false}
I/ActivityManager( 958): Start proc com.fsck.k9 for activity com.fsck.k9/.activity.FolderList: pid=4109 uid=10078 gids={3003, 1015}
W/UsageStats( 958): Something wrong here, didn’t expect com.fsck.k9 to be resumed
I/ActivityThread( 4109): Publishing provider com.fsck.k9.attachmentprovider: com.fsck.k9.provider.AttachmentProvider
I/ActivityThread( 4109): Publishing provider com.fsck.k9.messageprovider: com.fsck.k9.provider.MessageProvider
I/k9 ( 4109): Loading preferences from DB into Storage
I/k9 ( 4109): Preferences load took 162ms
I/k9 ( 4109): AutoSync help is available, autoSync = false
I/k9 ( 4109): Committing preference changes
W/InputManagerService( 958): Got RemoteException sending setActive(false) notification to pid 4074 uid 10078
I/k9 ( 4109): Preferences commit took 162ms
I/ActivityManager( 958): Displayed activity com.fsck.k9/.activity.FolderList: 1025 ms (total 1025 ms)
I/ActivityManager( 958): Stopping service: com.fsck.k9/.service.PushService
I/ActivityManager( 958): Stopping service: com.fsck.k9/.service.MailService
W/InputManagerService( 958): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@2f910608 (uid=10078 pid=4109)
W/IInputConnectionWrapper( 4109): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.jtb.alogcat/.LogActivity }
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f562f00 duration=1
I/NotificationService( 958): enqueueToast pkg=org.jtb.alogcat callback=android.app.ITransientNotification$Stub$Proxy@2f98bf28 duration=1
D/alogcat ( 2536): stopping …
D/alogcat ( 2536): resumed
W/IInputConnectionWrapper( 1072): showStatusIcon on inactive InputConnection
I/ActivityManager( 958): Displayed activity org.jtb.alogcat/.LogActivity: 570 ms (total 570 ms)

これらの現象は、本家の最新版(v3107,3108)で起きますので、Gmail で「連絡先」をお使いの方は今のところバージョンアップは控えた方が良さそうです。

[2010.09.30 追記]
K-9 Mail (本家版 v3110) で Gmail連絡先が表示されるようになりました!

いや、修正されてよかったです。