当前位置: 首页 > 面试题库 >

为什么“ System.out.println”在Android中不起作用?

雷骁
2023-03-14
问题内容

我想在控制台中打印一些内容,以便对其进行调试。但是由于某种原因,我的Android应用程序中没有任何内容。

那我该如何调试呢?

public class HelloWebview extends Activity {
    WebView webview;    
    private static final String LOG_TAG = "WebViewDemo";
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new HelloWebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(new MyWebChromeClient());
        webview.loadUrl("http://example.com/");    
        System.out.println("I am here");
    }

问题答案:

在仿真器上,大多数设备System.out.println都重定向到LogCat并使用进行打印Log.i()。在非常旧的或自定义的Android版本上可能并非如此。

原版的:

没有控制台将消息发送到,因此System.out.println消息丢失。当你使用来运行“传统” Java应用程序时,也会以同样的方式发生这种情况javaw

相反,你可以使用Android Log类:

Log.d("MyApp","I am here");

然后,你可以在Eclipse 的Logcat视图中查看日志,也可以通过运行以下命令来查看日志:

adb logcat

养成查看logcat输出的习惯是一件好事,因为这也是显示任何未捕获的异常的堆栈跟踪的地方。

每个日志记录调用的第一个条目是日志标记,用于标识日志消息的来源。这很有用,因为你可以过滤日志的输出以仅显示你的消息。为了确保你与日志标签一致,最好将它一次定义为static final String某个地方。

Log.d(MyActivity.LOG_TAG,"Application started");

有五个单字母方法分别Log对应于以下级别:

  • e() - Error
  • w() - Warning
  • i() - Information
  • d() - Debug
  • v() - Verbose
  • wtf() - What a Terrible Failure


 类似资料:
  • 问题内容: 在什么情况下,java的System.out.println无法产生任何输出。我在方法内部调用了它,有时在调用该方法时得到了println,而有时却没有。 更新:我还在println之后使用System.out.flush()。 更新:感谢您的调试帮助。原来,阻止调用打开了一个对话框,使输出看起来与正常顺序大相径庭。我以为我要打印消息的方法是在对话框关闭时被调用的,但是该方法本身就是在

  • 问题内容: 为什么这项工作有效- 但这不是- 第二种情况下的输出为。你能解释一下输出吗? 问题答案: 该方法没有返回值。它会在适当的位置更改列表,并且由于您没有将分配给任何变量,因此只是“迷失在空间” 我没有重载所有有问题的方法,但是概念应该很清楚。

  • 我试图在我的Word文档中使用块,但我有一些问题。首先,当我在我的文档中声明一个块时,如果我不使用函数“cloneBlock”,结果会出现这样的情况: 也许我必须使用那个函数才能正常出现。但是我的主要问题是“删除块”不起作用。如果我不克隆块,生成的docx就会损坏。但是如果我克隆了这个块,函数“删除块”不会删除这个块,它会在我的最终docx文件中显示那个块内的信息。 这是我的代码: Docx模板:

  • 问题内容: 我的Dockerfile创建一个目录,将其chown,然后再列出该目录。该目录仍归root用户所有。这是为什么? 这是Dockerfile: 这是“ docker build”的输出: Docker版本1.2.0,构建fa7b24f 主机运行Ubuntu 12.04,但具有3.13.0-36通用内核。 问题答案: 回答我自己的问题:它声明为卷。如果取出VOLUME指令,则将生效。 此外

  • 我试图通过类名获取一些元素。以下是HTML文件: 在这里,我想得到的是,具有类="product-grid lid-leve-5"的div。这是我所做的: 这段代码成功地获取了id为“content”的div。然后当我尝试时, 它返回空值。我做错了什么?那个div的class属性的名字不就是“产品-网格边距-左-5”吗?有人能帮忙吗? 谢谢

  • 我在下面有一个代码,我试图创建一个闹钟。我有字符串和toString的问题。在Android Studio中显示为红色。我尝试过String.valueOf(value),但它在字符串中有同样的问题?? 有什么建议吗?