良い日、 私が今会った問題のために、私のasynctaskはSDK 24以上で動作していますが、SDK 21,22,23エミュレータと実際のデバイスに置いたとき、それは働かない。AsynctaskがSDK 23以前で動作していない
私の最初のアクティビティとフラグメントのAsynctasksは動作していますが、2番目のアクティビティのasysntaskは機能しません。エラーコード:400、例外java.lang.IllegalStateException:myURL。
doInBackGroundコードと私のasynctask:このコードの場合
@Override
protected String doInBackground(Void... voids) {
try {
//creating a URL
URL url = new URL(urlWebService);
//Opening the URL using HttpURLConnection
HttpURLConnection con = (HttpURLConnection) url.openConnection();
//StringBuilder object to read the string from the service
StringBuilder sb = new StringBuilder();
//We will use a buffered reader to read the string from service
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
//A simple string to read values from each line
String json;
while ((json = bufferedReader.readLine()) != null) {
if (!json.contains("<br")) {
sb.append(json + "\n");
}
}
//finally returning the read string
return sb.toString().trim();
} catch (Exception e) {
System.out.println("Error in http connection " + e.toString());
return null;
}
}
}
は、SDK 24,25,26上で動作します。 con.getInputStream()で例外がスローされます。私は問題が何であるか分かりません。それはスレッドか他の何の問題ですか?ありがとう。
IOExeption
10-27 02:28:29.453 16954-17698/com.example.reonyx.tracking5 W/System.err: java.io.FileNotFoundException:mrURL
10-27 02:28:29.453 16954-17698/com.example.reonyx.tracking5 W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:197)
10-27 02:28:29.453 16954-17698/com.example.reonyx.tracking5 W/System.err: at com.example.reonyx.tracking5.PlayBackActivity$1GetJSON.doInBackground(PlayBackActivity.java:1206)
10-27 02:28:29.453 16954-17698/com.example.reonyx.tracking5 W/System.err: at com.example.reonyx.tracking5.PlayBackActivity$1GetJSON.doInBackground(PlayBackActivity.java:964)
10-27 02:28:29.453 16954-17698/com.example.reonyx.tracking5 W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
10-27 02:28:29.453 16954-17698/com.example.reonyx.tracking5 W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-27 02:28:29.454 16954-17698/com.example.reonyx.tracking5 W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
10-27 02:28:29.454 16954-17698/com.example.reonyx.tracking5 W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-27 02:28:29.454 16954-17698/com.example.reonyx.tracking5 W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-27 02:28:29.454 16954-17698/com.example.reonyx.tracking5 W/System.err: at java.lang.Thread.run(Thread.java:818)
例外があり、その理由を理解しようとしている場合はいつでも、スタックトレースを質問に追加する必要があります。スタックトレースは通常、問題の内容を示します。そうでない場合、スタックトレースは私たちにあなたを助けるためのより多くの情報を与えます。また、エラーを記録するために 'System.out.println'の代わりに' Log.e'を使うことも考えてください。 – Jon