Tejaswi Yerukalapudi
Tejaswi Yerukalapudi

Reputation: 9157

Android Eclipse not hitting breakpoints / not printing to Logcat

I'm not really sure what else I can do with this. Here's a function that refuses to print the stacktrace whatever I do. I'm not sure if it's because Eclipse isnt' deploying the right .apk to the emulator or if it's something I'm doing. So:

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;
    }
}

There is an exception at str.toString(). I don't know the cause because I'm not able to view the stacktrace. I don't think it's because of the size of the response because the same code was downloading the prefs fine till now.

In the catch block, printStackTrace() doesn't output to the Logcat. I have a break point at String stacktrace but it doesn't hit that particular breakpoint and instead goes directly to return null. I've tried resetting the emulator, creating a completely new emulator instance, cleaning my project, none of them seem to work.

Any help is much appreciated!

Thanks,
Teja.

Upvotes: 0

Views: 2019

Answers (1)

Jason Rogers
Jason Rogers

Reputation: 19344

Regarding the StackTrace,

you can't directly print the Stacktrace like in Java, you have to do a bit of gymnastic. you can try this:

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() ) );

Regarding the breakpoint:

I would suggest:

1) check that the function is called

2) check that you are launching in debug

3) check that your manifest allows debug

Regarding the str.toString(), I think it can only crash when called on a null object. I would suggest adding a

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

`

Hope it helps

Jason

Upvotes: 2

Related Questions