Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid StrictMode Throwable: Explicit termination method 'end' not called
    primarykey
    data
    text
    <p>I'm seeing a StrictMode failure, and I can't see what's wrong with what I'm doing. The failure is:</p> <pre><code>java.lang.Throwable: Explicit termination method 'end' not called E/StrictMode(26875): at dalvik.system.CloseGuard.open(CloseGuard.java:184) E/StrictMode(26875): at java.util.zip.Inflater.&lt;init&gt;(Inflater.java:82) E/StrictMode(26875): at java.util.zip.GZIPInputStream.&lt;init&gt;(GZIPInputStream.java:96) E/StrictMode(26875): at java.util.zip.GZIPInputStream.&lt;init&gt;(GZIPInputStream.java:81) E/StrictMode(26875): at libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:528) E/StrictMode(26875): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:836) E/StrictMode(26875): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274) E/StrictMode(26875): at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486) E/StrictMode(26875): at com.mycompany.MyClass.sendJson(MyClass.java:267) </code></pre> <p>I configure StrictMode:</p> <pre><code>if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.HONEYCOMB) { StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog() .penaltyDeath().build()); } </code></pre> <p>The code looks something like the following:</p> <pre><code>HttpURLConnection connection = null; OutputStream outputStream = null; InputStream in = null; try { connection = (HttpURLConnection)new URL("http://our.server/some/path").openConnection(); connection.setRequestProperty("Accept", "application/json"); connection .setRequestProperty("Content-Type", "application/json; charset=UTF-8"); connection.setDoOutput(true); outputStream = connection.getOutputStream(); String content = "{\"some\":\"json data\"}"; byte bytes[] = content.getBytes("UTF-8"); outputStream.write(bytes); outputStream.flush(); responseCode = connection.getResponseCode(); // This is line 267 in the stack trace if (HttpURLConnection.HTTP_OK == responseCode || HttpURLConnection.HTTP_CREATED == responseCode) { // do something with a successful response } } } catch (IOException e) { // report the exception } finally { if (null != connection) { connection.disconnect(); } if (null != outputStream) { try { outputStream.close(); } catch (IOException e) { } } if (null != in) { try { in.close(); } catch (IOException e) { } } } </code></pre> <p>I found somebody complaining of seeing the same StrictMode failure when using Google AdMob SDK (<a href="https://groups.google.com/forum/?fromgroups=#!topic/google-admob-ads-sdk/yVss4ufdPp4" rel="noreferrer">https://groups.google.com/forum/?fromgroups=#!topic/google-admob-ads-sdk/yVss4ufdPp4</a>) but I've not been able to find any solution so far.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload