我想在控制台中打印一些东西,以便我可以调试它。但由于某种原因,我的 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
Log.i()
原来的:
没有将消息发送到的控制台,因此System.out.println消息会丢失。同样,当您使用javaw.
javaw
相反,您可以使用AndroidLog类:
Log
Log.d("MyApp","I am here");
然后,您可以在 Eclipse 的 Logcat 视图中查看日志,也可以运行以下命令:
adb logcat
养成查看 logcat 输出的习惯是很好的,因为这也是显示任何未捕获异常的堆栈跟踪的地方。
每个日志调用的第一个条目是标识日志消息来源的日志标签。这很有帮助,因为您可以过滤日志的输出以仅显示您的消息。为了确保您与您的日志标签一致,最好将其定义为static final String某个地方。
static final String
Log.d(MyActivity.LOG_TAG,"Application started");
Log对应以下级别有五种单字母方法:
e()
w()
i()
d()
v()
wtf()
该文档对级别进行了以下说明:
除非在开发期间,否则永远不应将详细信息编译到应用程序中。调试日志被编译,但在运行时被剥离。始终保留错误、警告和信息日志。