aLogcatでJelly Beanのメッセージログにアクセスする際の問題


12

概要

aLogcatを使用してK9ログメッセージにアクセスする際に問題が発生しました。詳細については以下を参照してください。私が知りたいのは:

  • K9からのログメッセージがaLogcatログビューアーに表示されないのはなぜですか?
  • K9フォルダーを同期しようとしたときに発生しているエラーの全文を表示する方法について、誰か提案はありますか?
  • Jelly Beanで何かが変更され、K9のロギングが機能しなくなる可能性がありますか?
  • 一般にaLogcatによって表示されるメッセージは非常に少ないように見えるため、Jelly Beanで何かが変更され、すべてのメッセージにアクセスできなくなったことを意味する可能性がありますか?

詳細

最近、K9で接続の問題が発生しています。私のフォルダーは同期に失敗し、フォルダーリストは最終的に確認されるべき場所であるソケットエラー(libcore.io.ErrnoException:)またはsslエラー(javex.net.ssl.SSLException:)などでいっぱいになります。その時点で発生している問題に応じて異なるメッセージが表示されますが、エラーメッセージの全文が表示されないため、原因を推測することは困難です。

ログファイルに詳細な情報が含まれている可能性があると考えて、「デバッグログの記録」の指示に従い、K9でデバッグログを有効にし、aLogcatをインストールして、ログを調べてみました。悲しいことに、選択したログバッファー(MainEventsまたはRadio)にかかわらず、K9からのメッセージはないようです。

提案された(k9|AndroidRuntime)正規表現フィルターを追加すると、どのログに何も表示されません。それを削除すると、Mainにはほとんどガベージコレクションメッセージが含まれ、EventsにはaLogcat自体からのメッセージがほとんど含まれているようで、Radioにはまだログメッセージが表示されていません。

それが違いを生む場合、私はNexus 7を使用していますが、ロギングはAndroidバージョン間で変わらない標準の場所にあると思っていたでしょう。

回答:


24

K9フォルダーを同期しようとしたときに発生しているエラーの全文を表示する方法について、誰か提案はありますか?

ルートアクセスなしにデバイスでこれらのログメッセージを表示する方法はないようですが、ルートアクセスがある場合は、aLogcatに必要な権限付与するか、恐ろしいハックTMを使用して表示することを検討してくださいそれらを直接。

経由でPCまたはワークステーションのログファイルを表示する adb

AndroidデバイスをPCまたはワークステーションに接続できる場合は、adbコマンドを介してログにアクセスできます。

Windowsでこれを行うには、最初にAndroid SDKJava SE SDKが必要)をインストールし、システムパスにandroid-sdk\tools and android-sdk\platform-toolsを追加する必要があります。次に、あなたのネクサス7上のデバッグUSBを有効にUSB経由でそれをプラグイン、およびインストールAndroidのコンポジットADBインタフェースからandroid-sdk\extras\google\usb_driver(私はここで見て、Windows XPを強制しなければならなかった、それはそれ自身のドライバを見つけられないでしょう)。

adb完全なAndroid SDKをインストールせずに、またはMacやLinuxマシンで起動して実行する方法の詳細については、ADBの最小インストールはありますか?に対するIzzyの優れた回答を 参照してください

次に、シェル(cmdウィンドウ)を開いてコマンドを実行できます。

adb logcat k9:V *:S AndroidRuntime:E
  • これがルート化されていないNexus 7でも機能することを確認しました。

aLogcatにアクセス許可を付与する

あなたが持っている場合はrootアクセスを、あなたが付与検討することもできREAD_LOGS許可をaLogcatこの記事で提案されているように、aLogcat / CatLog /木こり動作していませんか?...これを行うにはXDA-開発者フォーラム

pm grant <pkg> android.permission.READ_LOGS

alogcatまたはalogcat.donateにこの権限を付与するには、寄付バージョンを実行しているかどうかに応じて、次のコマンドのいずれかを使用します。

pm grant org.jtb.alogcat.donate android.permission.READ_LOGS
pm grant org.jtb.alogcat android.permission.READ_LOGS

android-developersチケットに関する1件の投稿によると、許可の付与は再起動と更新には影響しませんが、アンインストール/再インストールには影響しません。

悲しいことに、これはルートアクセスを必要とするので、これをデバイス上で実行するかPC上で実行するかにかかわらず(接頭辞adb shell)、エラーが発生します:

Neither user 12345 nor current process has android.permission.GRANT_REVOKE_PERMISSION
  • Nexus 7がルート化されていないため、これが機能することを確認できません。

恐ろしいハックTMの使用を検討してください

ルートアクセスがある場合、ルートへのアクセスなしでNexus 7のAndroidログファイルにアクセスするにはどうすればよいですか?のこの回答で提案されているように、デバイスシェルからlogcat setuid rootを作成してlogcatを実行することを検討できますか?質問:

chmod 04755 /system/bin/logcat
logcat k9:V *:S AndroidRuntime:E
  • 繰り返しますが、これが機能することを確認することはできません。セキュリティの影響を考えると、おそらく最後の手段としてのみ使用します。

K9からのログメッセージがaLogcatログビューアーに表示されないのはなぜですか?

Jelly Beanで何かが変更され、K9のロギングが機能しなくなる可能性がありますか?

一般にaLogcatによって表示されるメッセージは非常に少ないように見えるため、Jelly Beanで何かが変更され、すべてのメッセージにアクセスできなくなったことを意味する可能性がありますか?

これは、ログファイルを読み取ろうとするすべてのアプリケーションに影響するJelly Beanの変更のようです。

どうやらJelly BeanのサードパーティアプリケーションにREAD_LOGSパーミッションが付与されていないようです。このリンクは信頼できないと思われるため:

今日、アプリケーションを最新(api 16)エミュレーターでテストしてから、Google Playにリリースしました。Androidはサードパーティのアプリケーションにこの許可を与えることを拒否するようになりました。これは、Jelly Beanの文書化されたすべての変更を調べたが、READ_LOGS許可に言及するものが見つからなかったため、奇妙です。

以降

READ_LOGSのprotectionLevelは、「signature | system | development」になりました。protectionLevelの新しいパイプ構文も文書化されていません(http://code.google.com/p/android/issues/detail?id=34785を参照)。

私の疑いは、aLogcatがそれ自体によって生成されたメッセージだけを見ていて、それがvmであるということです。

詳細については、「質問に対するフローの回答」を参照してください。JellyBeanシステムのログファイルはどのくらいアクティブになりますか?


IIRC adb logcatはJelly Beanで完全なAndroidログを取得できます。
フロー

ルートは必要ありませんが、デバイスでadbを有効にする必要があります(通常は開発者オプションの下)。
フロー

@Flow-ここadb logcatからPCでログを表示できることを確認し、それに応じて回答を更新しました。デバイス自体からのルートアクセスなしにログにアクセスする方法を見つけることができないのは、いらだちです。
マークブース

非ルートユーザー完全なシステムログにアクセスできないのは、JBログの変更点です。
フロー

@Flow-ええ、ログメッセージの重要な点は、それらを使用して何が起こっているのかを見つけることができるということです。JBは、aLogcatのようなアプリを、それ自体が作成したログメッセージにしかアクセスできないため、非常に無意味になります。
マークブース

0

メールサーバーがSSL証明書を更新したときに、K9でこの動作を確認しました。修正は、アカウントを長押しし、証明書に関するポップアップが表示されるまでページを選択Account settings -> Fetching mail -> Incoming serverNextて設定を確認するだけでした(証明書に問題がなければ、私のホストが間違っていました)証明書を確認し、残りの設定を実行するだけで、アカウントが機能し始めます。


@MarkBoothおそらくあなたはそれを尋ねるべきだったでしょう、私たちは一般に解決策を前提としない質問を好むでしょう。
マシュー

@MatthewReadここでマークに同意する必要があります:彼の要約の4つの項目は、彼がロギングの問題で助けを必要としていることを明示的に述べています。K9は明らかに単なる一例である-多分質問のタイトルは、それを強調するように調整する必要があります。より良い一致(フォーカス)う「の問題の原因を特定するためにlogcatを使用した」;)
イジー

@MarkBooth Yepp、tnx-より明確になりました。また、詳細な答えはtnx!進捗状況を常に最新にしてください。
イジー

回答は、編集後は完全にトピックから外れており、取り下げられやすいため、回答を削除する必要がありますか?
オニック

それはあなた次第ですonik。最初に言ったように、回答を投稿するのに時間を割いていただきありがとうございます。同僚のプレッシャーバッジを収集できるように、-3未満で投票されるかどうかを常に待って確認できると思います。* 8 ')
マークブース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.