Prozess: com.example.dell.api, PID: 22968 java.lang.RuntimeException: Fehler beim Ausführen doInBackground() bei android. os.AsyncTask $ 3.done (AsyncTask.java304) bei java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:355) bei java.util.concurrent.FutureTask.setException (FutureTask.java:222) bei java.util.concurrent.FutureTask.run (FutureTask.java:242) bei android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:231) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. Java: 1 112) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587) bei java.lang.Thread.run (Thread.java:818) verursacht durch: java.lang.SecurityException: Berechtigung verweigert (fehlende INTERNET Erlaubnis?) bei java.net.InetAddress.lookupHostByName (InetAddress.java:451) bei java.net.InetAddress.getAllByNameImpl (InetAddress.java:252) bei java.net.InetAddress.getAllByName (InetAddress. java: 215) bei com.android.okhttp.HostResolver $ 1.getAllByName (HostResolver.java:29) bei com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress (RouteSelector.java:232) bei com.android .okhttp.internal.http.RouteSelector.next (RouteSelector.java:124) bei com.android.okhttp.internal.http.HttpEngine.connect (HttpEngine.java:370) bei com.android.okhttp.internal.http.HttpEngine.sendRequest (HttpEngine.java:298) bei com.android. okhttp.internal.http.HttpURLConnectionImpl.execute (HttpURLConnectionImpl.java:399) bei com.android.okhttp.internal.http.HttpURLConnectionImpl.connect (HttpURLConnectionImpl.java:110) bei com.android.okhttp.internal.http. DelegatingHttpsURLConnection.connect (DelegatingHttpsURLConnection.java:89) unter com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect (HttpsURLConnectionImpl.java:25) unter com.example.dell.api.MainActivity $ JSONTask.doInBackground (MainActivity. Java: 147) bei com.example.dell.api.MainActivity $ JSONTask.doInBack Boden (MainActivity.java:131) bei android.os.AsyncTask $ 2.call (AsyncTask.java:292) bei java.util.concurrent.FutureTask.run (FutureTask.java:237) bei android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:231) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587) bei java.lang.Thread.run (Thread.java:818)java.lang.RuntimeException: Fehler beim Ausführen doInBackground (
Dies ist mein Code:
protected List<MovieModel> doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
String finalJson = buffer.toString();
JSONObject parentObject = new JSONObject(finalJson);
JSONArray parentArray = parentObject.getJSONArray("movies");
List<MovieModel> movieModelList = new ArrayList<>();
Gson gson = new Gson();
for (int i = 0; i < parentArray.length(); i++) {
JSONObject finalObject = parentArray.getJSONObject(i);
/**
* below single line of code from Gson saves you from writing the json parsing yourself
* which is commented below
*/
MovieModel movieModel = gson.fromJson(finalObject.toString(), MovieModel.class); // a single line json parsing using Gson
movieModel.setMovie(finalObject.getString("movie"));
movieModel.setYear(finalObject.getInt("year"));
movieModel.setRating((float) finalObject.getDouble("rating"));
movieModel.setDirector(finalObject.getString("director"));
movieModel.setDuration(finalObject.getString("duration"));
movieModel.setTagline(finalObject.getString("tagline"));
movieModel.setImage(finalObject.getString("image"));
movieModel.setStory(finalObject.getString("story"));
List<MovieModel.Cast> castList = new ArrayList<>();
for (int j = 0; j < finalObject.getJSONArray("cast").length(); j++) {
MovieModel.Cast cast = new MovieModel.Cast();
cast.setName(finalObject.getJSONArray("cast").getJSONObject(j).getString("name"));
castList.add(cast);
}
movieModel.setCastList(castList);
// adding the final object in the list
movieModelList.add(movieModel);
}
return movieModelList;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
enter code here
'Bedingt durch hinzufügen: java.lang.SecurityException: (fehlende INTERNET Erlaubnis) Zugriff verweigert' – fluffyBatman