Android 正确使用LogCat和try/catch挡块
我正在尝试使用LogCat调试一个简单的应用程序,该应用程序读取我的res文件夹中的XML文件 我在Eclipse LogCat窗口中不断遇到此错误:Android 正确使用LogCat和try/catch挡块,android,Android,我正在尝试使用LogCat调试一个简单的应用程序,该应用程序读取我的res文件夹中的XML文件 我在Eclipse LogCat窗口中不断遇到此错误: 01-03 10:21:30.741: W/dalvikvm(356): threadid=1: thread exiting with uncaught exception (group=0x40014760) E/AndroidRuntime(356): java.lang.RuntimeException: Unable to instan
01-03 10:21:30.741: W/dalvikvm(356): threadid=1: thread exiting with uncaught exception (group=0x40014760)
E/AndroidRuntime(356): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{tot.HelloAndroid/tot.HelloAndroid.HelloAndroid}: java.lang.NullPointerException: println needs a message
这似乎对我没有帮助。我使用的是这样的try/catch块。这个看起来可以吗
public XmlParser() throws XmlPullParserException, IOException {
try {
XmlPullParser xpp = getResources().getXml(R.xml.encounters);
// ...do stuff...
} catch (Exception e) {
Log.e("error", e.getMessage());
}
//...
如果错误消息为
null
(如果未设置错误消息,则可能出现这种情况),则尝试不打印任何内容,可以使用一种简单的修复方法
Log.e("error",""+e.getMessage()); //or "error message: "+e.getMessage();, or whatever you want.
或
您可能还想调用
e.printStackTrace()
以获取更详细的信息。您在AndroidManifest.xml中定义了此活动,对吗?我的应用程序在AndroidManifest.xml中定义了一个活动…它只是我的应用程序的名称…HelloAndroidI我认为e.printStackTrace()不会提供信息。如果没有,请尝试:Log.e(“error”,Log.getStackTrace(e));为什么堆栈跟踪与Log.getStackTrace()相比不能提供信息?它们都打印完全相同的信息,但是Log.e(“error”,Log.getStackTrace(e));将其打印为错误而不是警告,并带有标记“error”。我尝试了第二个选项,在catlog窗口中得到“error”“null”。有没有办法找出什么是空的?我不确定它是否找不到XML文件或XML文件中的元素。-感谢在底部看到的StackTrace,它包含关于错误的更详细信息,例如错误发生在什么方法和什么行。错误的“消息”可能根本不包含任何信息(这里就是这种情况)。在使用printStackTrace()之后,我在android.content.ContextWrapper.getResources(ContextWrapper.java:81)上看到了:E/error(374):但是我没有任何名为ContextWrapper.java的东西,除非它是内置的。StackTrace中引用我的代码的最后一个错误是:xmlParser.java第19行。第19行很简单:XmlPullParser xpp=getResources().getXml(R.xml.conferences);--其中“Conferences”是my res文件夹中的my Conferences.xml文件。
Log.e("error", String.valueOf(e.getMessage()));