Androidアプリケーションを開発していて、コードの実行時にデバッグステートメントを出力する方法が欲しいのですが、幸いなことに、Logcatを実行するとLog.dメッセージを出力できました。 Android 2.3.3(API 10)エミュレーター上の私のアプリケーション。
ただし、物理デバイス(Samsung Galaxy S4 Android 4.2.2))でまったく同じアプリケーションをテストしたところ、dalvikvmメッセージとAndroidRuntimeメッセージ以外は表示されませんでした。
com.Android.internal.os.RuntimeInit <<<<<<
07-28 04:49:24.165: DEBUG/AndroidRuntime(6378): CheckJNI is OFF
07-28 04:49:24.165: DEBUG/AndroidRuntime(6378): setted country_code = USA
07-28 04:49:24.165: DEBUG/AndroidRuntime(6378): setted countryiso_code = US
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): setted sales_code = VZW
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): readGMSProperty: start
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): readGMSProperty: already setted!!
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): readGMSProperty: end
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): addProductProperty: start
07-28 04:49:24.185: DEBUG/dalvikvm(6378): Trying to load lib libjavacore.so 0x0
07-28 04:49:24.185: DEBUG/dalvikvm(6378): Added shared lib libjavacore.so 0x0
07-28 04:49:24.195: DEBUG/dalvikvm(6378): Trying to load lib libnativehelper.so 0x0
07-28 04:49:24.195: DEBUG/dalvikvm(6378): Added shared lib libnativehelper.so 0x0
07-28 04:49:24.385: DEBUG/AndroidRuntime(6378): Calling main entry com.Android.commands.pm.Pm
07-28 04:49:26.978: DEBUG/AndroidRuntime(6378): Shutting down VM
07-28 04:49:26.988: DEBUG/dalvikvm(6378): GC_CONCURRENT freed 157K, 21% free 627K/788K, paused 1ms+0ms, total 4ms
07-28 04:49:26.988: DEBUG/jdwp(6378): Got wake-up signal, bailing out of select
07-28 04:49:26.988: DEBUG/dalvikvm(6378): Debugger has detached; object registry had 1 entries
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): >>>>>> AndroidRuntime START com.Android.internal.os.RuntimeInit <<<<<<
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): CheckJNI is OFF
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): setted country_code = USA
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): setted countryiso_code = US
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): setted sales_code = VZW
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): readGMSProperty: start
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): readGMSProperty: already setted!!
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): readGMSProperty: end
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): addProductProperty: start
07-28 04:49:27.468: DEBUG/dalvikvm(6420): Trying to load lib libjavacore.so 0x0
07-28 04:49:27.478: DEBUG/dalvikvm(6420): Added shared lib libjavacore.so 0x0
07-28 04:49:27.478: DEBUG/dalvikvm(6420): Trying to load lib libnativehelper.so 0x0
07-28 04:49:27.478: DEBUG/dalvikvm(6420): Added shared lib libnativehelper.so 0x0
07-28 04:49:27.649: DEBUG/AndroidRuntime(6420): Calling main entry com.Android.commands.am.Am
07-28 04:49:27.659: DEBUG/dalvikvm(6420): Note: class Landroid/app/ActivityManagerNative; has 169 unimplemented (abstract) methods
07-28 04:49:27.719: DEBUG/AndroidRuntime(6420): Shutting down VM
07-28 04:49:27.729: DEBUG/dalvikvm(6420): GC_CONCURRENT freed 157K, 20% free 666K/828K, paused 0ms+1ms, total 3ms
07-28 04:49:27.729: DEBUG/jdwp(6420): Got wake-up signal, bailing out of select
07-28 04:49:27.729: DEBUG/dalvikvm(6420): Debugger has detached; object registry had 1 entries
Logcatが物理デバイスを正しくターゲットにしていて、adbデバイスに表示され、USBデバッグがオンになっているため、何が起こっているのか正確にはわかりません。
Log.eを使用してみましたが、出力に影響はありませんでした。
AndroidManifest.xmlでAndroid:debuggable = "true"を設定しました。
ここに欠けているものはありますか?物理デバイスでアプリを実行しているときに、Logcatがデバッグメッセージを表示しないのはなぜですか?
編集:Android 4.2.2エミュレーターで同じアプリを試しましたが、Logcatはエミュレーターで期待どおりに動作しますが、USBデバイスを介したLogcatにはまだ問題があります。通常のLogcatプリントアウトでは、私が投稿したブロックは、詳細ログレベルで表示される唯一のものです。
一部の電話がパフォーマンスを向上させるためにログを無効にしたことが原因である可能性があります。
たとえば、私の電話HUAWEI P9 liteでは、Log.d
を機能させるために次の手順を実行する必要があります。
ProjectMenu
ページにアクセスしてくださいBackground Settings
をクリックしますLOG Settings
をクリックしますAP Log
を確認してください。LOG Settings
を再度開くと、すべてのログが自動的にチェックされます。[UPDATE]
ちょうど今、私がgitからプルした後に再び起こります、adb Shell
はこれを示しています:
open '/dev/hwlog_switch' fail -1, 13. Permission denied
log switch off, only log_main and log_events will have logs!
新しいプロジェクトでテストしたところ、ログが記録されました。この古いプロジェクトだけに問題があります。アプリを再構築し、上記のログ手順を再度有効にして、電話を再起動しようとしましたが、それでもうまくいきませんでした。
次に、電話でアプリをアンインストール(または関連するすべてのproductFlavors
アプリ)して再インストールすると、ログが返されました。
答えではないかもしれませんが、写真を表示する必要があります。次のように、TAGのフィルターを設定してみてください。
そして、詳細オプションを選択します。
これは役に立ちますか?
LogcatのUSBデバッグを有効にしましたか? (物理デバイスがUSBケーブルで接続されている場合)。 「設定」、「アプリケーション」、「開発」の順に移動し、「USBデバッグ」を確認してください。
次に、DDMSに表示されます。ログをデバッグ/表示するには、これを選択するだけです。
次のように、adbシェルを介してログを(目的のレベルに)設定する必要があります。
./adb Shell
を使用して、windowscmdの場合はadb Shell
を使用してadbシェルを開きます。次のコマンドを発行します。
stop
setprop log.tag.MYTAG VERBOSE
start