3

Androidドキュメントは次のことを示しています。

冗長性の観点から、最小から最大の順序は、ERROR、WARN、INFO、DEBUG、VERBOSEです。開発中を除いて、Verboseをアプリケーションにコンパイルしないでください。デバッグログはコンパイルされますが、実行時に削除されます。エラー、警告、および情報ログは常に保持されます。

しかし、やってみると、Log.d()実際にはまだ実際のデバイスでLogcatに記録されていることがわかります。

誰かが理由を知っていますか?またはそれを無効にする方法は?

ありがとうございました!

4

4 に答える 4

7

あなたが見ているのは、期待される動作です。logcat を使用してデバイスを接続すると、Log.d は常にログに記録されて表示されます。したがって、本番アプリでデバッグ ログが必要ない場合は、オフにします。実際、android sdk は、それを行うことをお勧めします。このSOの回答も役立つかもしれません。最終的なパッケージを作成するときに、ログ呼び出しにコメントする必要がありますか?

Android SDK 言う

ロギングとデバッグをオフにする

リリース用にアプリケーションをビルドする前に、ロギングを無効にし、デバッグ オプションを無効にしてください。ソース ファイル内の Log メソッドの呼び出しを削除することで、ログを無効にすることができます。マニフェスト ファイルのタグから android:debuggable 属性を削除するか、マニフェスト ファイルで android:debuggable 属性を false に設定することで、デバッグを無効にできます。また、プロジェクトで作成されたログ ファイルまたは静的テスト ファイルをすべて削除します。

また、startMethodTracing() や stopMethodTracing() メソッド呼び出しなど、コードに追加したすべてのデバッグ トレース呼び出しを削除する必要があります。

ソース

于 2012-04-05T09:39:43.553 に答える
0

独自のクラスでロギングをカプセル化し、必要に応じて特殊なタイプのログを有効/無効にする必要があります。

于 2012-04-05T09:39:43.780 に答える
-1

verbose が開発中にコンパイルされている場合、デバッグ ログがそうでない場合はおかしいでしょう。アプリに署名して試してみてください。デバッグメッセージが欠落していると思います。

于 2012-04-05T09:40:57.500 に答える
-1

デバイスを接続すると、デバッグ モードがアクティブになります。デバイスのプラグを抜いた状態でアプリを実行しても、同じことはないと思いますが、それを確認することはできません...

于 2012-04-05T09:42:20.723 に答える