Android 程序中 System.out.print("Hello") 的输出

Vis*_*hal 1 java android

我想在我的 android 程序中查看任何变量(String var)值。您可以说用于调试目的。

当我使用 System.out.print("Hello") 打印任何内容时,我无法在任何地方找到此输出。

有谁知道在哪里可以找到这个输出。

这是我的代码-

package com.test1.nus;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        System.out.print("Hello");

        ....
     }
Run Code Online (Sandbox Code Playgroud)

ovm*_*mjm 5

默认情况下,Android 系统将stdout( System.out) 输出重定向到/dev/null,这意味着您的消息会丢失。

相反,在 Android 中记录调试字符串的常见模式如下

import android.util.Log;
Run Code Online (Sandbox Code Playgroud)

然后在班级中名列前茅YourClass

private static final String TAG = YourClass.class.getSimpleName();
Run Code Online (Sandbox Code Playgroud)

要记录调试字符串,您需要调用

Log.d(TAG, "your debug text here");
Run Code Online (Sandbox Code Playgroud)

在你的情况下会导致

package com.test1.nus;

import android.util.Log;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    private static final String TAG = MainActivity.class.getSimpleName();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Log.d(TAG, "Hello");

        ....
    }
Run Code Online (Sandbox Code Playgroud)

最后你可以通过以下方式在 Eclipse 中看到你的调试字符串

Windows > Show view > Other并选择LogCat

如果需要,可以通过 标签进行过滤YourClass

但是,如果您确实需要查看由System.out.println您编写的消息,则需要告诉 Android 通过以下 shell 命令将它们路由到 logcat

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Run Code Online (Sandbox Code Playgroud)

然后您将能够通过 LogCat 视图和标记在 Eclipse 中查看调试消息stdout

您可以从此处的官方文档获取更多详细信息http://developer.android.com/tools/debugging/debugging-log.html