我想在控制台中打印一些东西,以便我可以调试它。但出于某种原因,我的 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");
}
原文由 TIMEX 发布,翻译遵循 CC BY-SA 4.0 许可协议
更正:
在模拟器和大多数设备上
System.out.println
被重定向到 LogCat 并使用Log.i()
打印。这在非常旧的或自定义的 Android 版本上可能并非如此。原来的:
没有可向其发送消息的控制台,因此
System.out.println
消息丢失了。当您使用javaw
运行“传统”Java 应用程序时,也会发生这种情况。相反,您可以使用 Android
Log
类:然后,您可以在 Eclipse 的 Logcat 视图中或通过运行以下命令来查看日志:
最好养成查看 logcat 输出的习惯,因为这也是显示任何未捕获异常的堆栈跟踪的地方。
每个日志记录调用的第一个条目是标识日志消息来源的日志标记。这很有用,因为您可以过滤日志的输出以仅显示您的消息。为确保您与日志标记一致,最好将其定义为
static final String
某处。Log
中一共有五个单字母方法,分别对应以下等级:e()
- 错误w()
- 警告i()
- 信息d()
调试v()
- 详细wtf()
- 多么可怕的失败该 文档说明了以下有关级别的信息: