Android Eclipse没有打破断点/不打印到Logcat

时间:2011-05-09 18:26:52

标签: android eclipse

我不确定我还能做些什么。这是一个拒绝打印堆栈跟踪的函数。我不确定是不是因为Eclipse没有将正确的.apk部署到模拟器中,或者它是我正在做的事情。所以:

private String getStringFromResponse(HttpResponse response) {
    try {
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while((line = reader.readLine()) != null){
            str.append(line);
        }
        in.close();
        String responseXMLString = str.toString();
        return responseXMLString;
    }
    catch(Exception ex) {
        ex.printStackTrace();
        String stackTrace = ex.getStackTrace().toString();
        Log.i("PPKMCC-NtwrkAccessClass", stackTrace);
        return null;
    }
}

str.toString()有例外。我不知道原因,因为我无法查看堆栈跟踪。我不认为这是因为响应的大小,因为相同的代码直到现在才下载prefs。

catch块中,printStackTrace()不会输出到Logcat。我在String stacktrace处有一个断点,但它没有达到该特定断点,而是直接转到return null。我已经尝试重置模拟器,创建一个全新的模拟器实例,清理我的项目,它们似乎都没有工作。

非常感谢任何帮助!

谢谢,
的Teja。

1 个答案:

答案 0 :(得分:2)

关于StackTrace,

你不能像Java一样直接打印Stacktrace,你必须做一些体操。 你可以试试这个:

Log.e("jason", "Login exception triggered : "+ e.getMessage() +"\n"+e);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream stream = new PrintStream( baos );
e.printStackTrace(stream);
stream.flush();
Log.e("jason", new String( baos.toByteArray() ) );

关于断点:

我建议:

1)检查函数是否被调用

2)检查您是否在调试中启动

3)检查您的清单是否允许调试

关于str.toString(),我认为它只能在空对象上调用时崩溃。 我建议添加一个

`if(str != null)
{
   //toString
}else{
   Log.e(TAG,"str == null");
}

`

希望有所帮助

杰森