Okay, I have a code that used to work just fine and right now it doesn't work only for devices, lower than 11.
Everything starts out fine and in my main activity I launch an AsyncTask
, inside doInBackground
appears the error as shown below:
@Override
protected Integer doInBackground(Integer... params) {
final String info = getString(R.string.inf);
final String post = getString(R.string.pos);
final String main = getString(R.string.mai);
String val1 = "";
String val2 = "";
String val3 = "";
int connSucc = 3;
try {
JSONTokener sbTokener = new JSONTokener(Sources.httpGet(infoUrlStr).toString()); //==========>>It crashes right here
JSONArray jArray=new JSONArray(sbTokener);
for(int i=0; i<(jArray.length()); i++)
{
JSONObject json_obj_inf = jArray.getJSONObject(i);
.
.
.
So I checked Sources.httpGet
:
public static StringBuilder httpGet (String urlStr) {
StringBuilder err = new StringBuilder();
hata.append("Error!");
HttpURLConnection conn = null;
BufferedReader rd = null;
StringBuilder sb = null;
try {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6000);
conn.setReadTimeout(10000);
if (conn.getResponseCode() >= 200 && conn.getResponseCode() <= 299) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
}
else {
return err;
}
}
catch (NetworkOnMainThreadException a) {
return err;
}
catch (Exception e) {
return err;
}
finally {
if (rd != null) {
try {
rd.close();
} catch (IOException e) {
return err;
}
}
if (conn != null) {
conn.disconnect();
}
}
return sb;
}
I think it can't even get to this httpGet
method. As I've said this works just fine for api level higher than 11. Below is my logcat which didn't help me that much.
12-20 10:32:11.194: E/AndroidRuntime(357): FATAL EXCEPTION: AsyncTask #1
12-20 10:32:11.194: E/AndroidRuntime(357): java.lang.RuntimeException: An error occured while executing doInBackground()
12-20 10:32:11.194: E/AndroidRuntime(357): at android.os.AsyncTask$3.done(AsyncTask.java:200)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.lang.Thread.run(Thread.java:1096)
12-20 10:32:11.194: E/AndroidRuntime(357): Caused by: java.lang.VerifyError: com.akilli.ticaret.source.Sources
12-20 10:32:11.194: E/AndroidRuntime(357): at com.akilli.ticaret.Main$RestRequ.doInBackground(Main.java:130)
12-20 10:32:11.194: E/AndroidRuntime(357): at com.akilli.ticaret.Main$RestRequ.doInBackground(Main.java:1)
12-20 10:32:11.194: E/AndroidRuntime(357): at android.os.AsyncTask$2.call(AsyncTask.java:185)
12-20 10:32:11.194: E/AndroidRuntime(357): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-20 10:32:11.194: E/AndroidRuntime(357): ... 4 more
12-20 10:32:13.064: E/WindowManager(357): Activity com.akilli.ticaret.Main has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@45fa6e78 that was originally added here
12-20 10:32:13.064: E/WindowManager(357): android.view.WindowLeaked: Activity com.akilli.ticaret.Main has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@45fa6e78 that was originally added here
12-20 10:32:13.064: E/WindowManager(357): at android.view.ViewRoot.<init>(ViewRoot.java:247)
12-20 10:32:13.064: E/WindowManager(357): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
12-20 10:32:13.064: E/WindowManager(357): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
12-20 10:32:13.064: E/WindowManager(357): at android.view.Window$LocalWindowManager.addView(Window.java:424)
12-20 10:32:13.064: E/WindowManager(357): at android.app.Dialog.show(Dialog.java:241)
12-20 10:32:13.064: E/WindowManager(357): at com.akilli.ticaret.Main$RestRequ.onPreExecute(Main.java:111)
12-20 10:32:13.064: E/WindowManager(357): at android.os.AsyncTask.execute(AsyncTask.java:391)
12-20 10:32:13.064: E/WindowManager(357): at com.akilli.ticaret.Main$1.onClick(Main.java:50)
12-20 10:32:13.064: E/WindowManager(357): at android.view.View.performClick(View.java:2408)
12-20 10:32:13.064: E/WindowManager(357): at android.view.View$PerformClick.run(View.java:8816)
12-20 10:32:13.064: E/WindowManager(357): at android.os.Handler.handleCallback(Handler.java:587)
12-20 10:32:13.064: E/WindowManager(357): at android.os.Handler.dispatchMessage(Handler.java:92)
12-20 10:32:13.064: E/WindowManager(357): at android.os.Looper.loop(Looper.java:123)
12-20 10:32:13.064: E/WindowManager(357): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-20 10:32:13.064: E/WindowManager(357): at java.lang.reflect.Method.invokeNative(Native Method)
12-20 10:32:13.064: E/WindowManager(357): at java.lang.reflect.Method.invoke(Method.java:521)
12-20 10:32:13.064: E/WindowManager(357): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-20 10:32:13.064: E/WindowManager(357): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-20 10:32:13.064: E/WindowManager(357): at dalvik.system.NativeStart.main(Native Method)
I'd really appreciate the help, I probable made a rookie mistake, and the reason it says that a window is leaked is probably because it crashes before it's even able to dismiss the dialogbox.