開発以外でもLogcat重要
先日いきなりNexus oneで特定の通信ができないトラブルが発生した。回線は3Gを使おうがWi-fiからFletsを経由しようが状況変わらず。
サービス毎に一通り調べて見ると
・Web ○
・Gmail ×
・Market ×
・Twitter ×
さっぱり解らないので、ADBを起動してLogcatを見てみることにした。
- GMail通信時
01-06 09:36:37.308: DEBUG/Gmail(498): MailProvider.query: content://gmail-ls/conversations/xxxxxxxx@gmail.com(, null) 01-06 09:36:37.338: DEBUG/Gmail(498): ConversationHeaderCursorAdapter.cursorStatusChanged: LOADING 01-06 09:36:37.798: INFO/Gmail(498): MailCursor encountered an IOException:Not trusted server certificate 01-06 09:36:37.809: DEBUG/Gmail(498): MailProvider.query: content://gmail-ls/conversations/xxxxxxxx@gmail.com(, null) 01-06 09:36:37.809: DEBUG/Gmail(498): ConversationHeaderCursorAdapter.cursorStatusChanged: ERROR : : 01-06 09:36:54.948: INFO/Gmail(498): getStartSyncRequest: handledServerOpId: 249740, upperFetchedConvoId: 1353176070075973632, lowerFetchedConvoId: 0, ackedClientOp: 51 01-06 09:36:55.788: DEBUG/Gmail(498): IO exception: javax.net.ssl.SSLException: Not trusted server certificate
SSLのサーバ証明書の扱いにおいてエラーが発生しているようだ。
これを頼りに
ハード故障ではない
↓
WAN側の障害ではない
↓
Wi-fiの通常の設定範囲ではない
↓
メンテナンスモードで通信方法が何故か"unknown"になっていたので"WCDMA Only"に変更
これで治った。何故unknownになっていたことでSSL通信が失敗していたのか、逆に何故WWWは問題無かったのかが腑に落ちないが、良い手がかりになったことだけは確かだ。