नहीं कहा जाता है, मुझे एक स्ट्रिक्टोड विफलता दिखाई दे रही है, और मैं नहीं देख सकता कि मैं क्या कर रहा हूं। विफलता है:एंड्रॉइड स्ट्रिक्टोड थ्रोबल: स्पष्ट समाप्ति विधि 'अंत' को
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.<init>(Inflater.java:82)
E/StrictMode(26875): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:96)
E/StrictMode(26875): at java.util.zip.GZIPInputStream.<init>(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)
मैं StrictMode कॉन्फ़िगर करें:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog()
.penaltyDeath().build());
}
कोड तरह दिखता है निम्नलिखित:
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) {
}
}
}
मैं एक ही StrictMode विफलता को देखकर की शिकायत जब गूगल का उपयोग कर किसी को पाया AdMob SDK (https://groups.google.com/forum/?fromgroups=#!topic/google-admob-ads-sdk/yVss4ufdPp4) लेकिन मुझे अब तक कोई समाधान नहीं मिला है।
(gziped HTTP प्रतिक्रिया पर) की कोशिश की, लेकिन अपवाद को पुन: उत्पन्न नहीं कर सकता। क्या आप एक स्पष्ट [सख्त मोड नीति] स्थापित कर रहे हैं (http://developer.android.com/reference/android/os/StrictMode.html)? आपका एंड्रॉइड एसडीके संस्करण क्या है? – minipif
मैंने यह दिखाने के लिए प्रश्न संपादित किया है कि मैं StrictMode –
को कॉन्फ़िगर कर रहा हूं क्या आपको कभी इसका समाधान मिला? मेरे लिए यह एंड्रॉइड के GZIPInputStream में एक बग जैसा दिखता है, क्योंकि यह एक इन्फ्लैटर बनाता है, "एंड" के लिए एक करीबी गार्ड पंजीकृत करता है, लेकिन फिर कभी अंततः कॉल नहीं करता है। – Matthias