http Request Android

  • Java

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Quellcoder02.

    http Request Android

    Hallo,

    ich programmiere gerade eine App. Diese App soll einen Parameter an eine php-datei die auf einem Server liegt schicken. Ich habe schon viele codes durchprobiert, es will aber keiner funktioneiren. Darum beziehe ich mioch auf den Code aus dem Tutorial von Oracle:

    Quellcode

    1. public static void httpRequest(String targetURL) {
    2. try {
    3. URL url = new URL(targetURL);
    4. URLConnection yc = url.openConnection();
    5. BufferedReader in;
    6. in = new BufferedReader(
    7. new InputStreamReader(
    8. yc.getInputStream()));
    9. String inputLine;
    10. while ((inputLine = in.readLine()) != null)
    11. System.out.println(inputLine);
    12. in.close();
    13. } catch(IOException e) {
    14. System.out.println(e);
    15. }
    16. }


    An meiner PHP-Datei die eine Textdatei umschreibt kann es nicht liegen, denn wenn ich diese mit .php?text=Test aufrufe, steht in der Datei auch der gewünschte Text. Ich bitte um Hilfe, bin echt am verzweifeln.
    LG
    Quellcoder
    Projekte
    Mit dieser Klasse solltest du hier klarkommen. Einfach die function downloadString nutzen. Vergiss natuerlich auch nicht die Rechte. <uses-permission android:name="android.permission.INTERNET" />

    Anwendungsbeispiel der Klasse unten, z.B. in der MainActivity:

    Java-Quellcode

    1. private void downloadString(String url) {
    2. StringLoader.DownloadCompleteListener dcl = new StringLoader.DownloadCompleteListener() {
    3. @Override
    4. public void onDownloadComplete(String result) {
    5. txt.setText(result);
    6. }
    7. };
    8. StringLoader loader = new StringLoader(dcl);
    9. loader.execute(url);
    10. }



    Spoiler anzeigen

    Java-Quellcode

    1. import java.io.BufferedReader;
    2. import java.io.IOException;
    3. import java.io.InputStream;
    4. import java.io.InputStreamReader;
    5. import org.apache.http.HttpResponse;
    6. import org.apache.http.client.HttpClient;
    7. import org.apache.http.client.methods.HttpGet;
    8. import org.apache.http.impl.client.DefaultHttpClient;
    9. import android.os.AsyncTask;
    10. public class StringLoader extends AsyncTask<String, Void, String> {
    11. private DownloadCompleteListener dc = null;
    12. @Override
    13. protected String doInBackground(String... params) {
    14. String response = download(params[0]);
    15. return response;
    16. }
    17. private String download(String url) {
    18. String text = "";
    19. String line;
    20. try {
    21. HttpClient client = new DefaultHttpClient();
    22. HttpGet get = new HttpGet(url);
    23. HttpResponse response = client.execute(get);
    24. InputStream in = response.getEntity().getContent();
    25. BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    26. while ((line = reader.readLine()) != null) {
    27. text += line;
    28. }
    29. return text;
    30. } catch (IOException io) {
    31. return "Downloadfehler";
    32. }
    33. }
    34. public interface DownloadCompleteListener {
    35. void onDownloadComplete(String result);
    36. }
    37. public StringLoader(DownloadCompleteListener dc) {
    38. this.dc = dc;
    39. }
    40. @Override
    41. protected void onPostExecute(String result) {
    42. dc.onDownloadComplete(result);
    43. }
    44. }

    And i think to myself... what a wonderfuL World!
    Ich nutze diese Klasse um JSONs herunterzuladen ebenfalls mit php. Mit vb.net z.B. kannst du ja auch PHPs via WebClient.DownloadString ansprechen. Ob du nun noch was ausgibst(PHP), an dann in der App nutzt ist dabei egal. So kannst du so oder so, deine Datei anwaehlen und die Argumente an die Adresse anhaegen.
    And i think to myself... what a wonderfuL World!
    okay, also wird bei diesem code auch nichts runtergeladen @Eddy?

    ich würde es ja testen, aber wenn ich debuggen möchte kommen fehler Error:(7, 30) error: package org.apache.http.client does not exist und noch mehr. Ich habe allerdings die Library hinzugefügt, und in Intellij werden mir auch keine fehler angezeigt. Weißt du vllt was?

    LG
    Projekte
    Wenn(also falls) du mit der PHP etwas ausgibst z.B. mit echo, var_dump etc..., wird das herutergeladen.

    error: package org.apache.http.client does not exist

    OK, ich arbeite echt noch mit Eclipse :S , da meldete die IDE schon immer das diese Package veraltet ist, funktionert bei mir aber Tadellos.

    Ab Target Android 6(API 23) ist der Apache HTTP Client nicht mehr supported, kann aber noch genutzt werden. So in Android Studio;

    https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html schrieb:


    Apache HTTP Client Removal

    Android 6.0 release removes support for the Apache HTTP client. If your app is using this client and
    targets Android 2.3 (API level 9) or higher, use the HttpURLConnection class
    instead. This API is more efficient because it reduces network use through transparent compression
    and response caching, and minimizes power consumption. To continue using the Apache HTTP APIs, you
    must first declare the following compile-time dependency in your build.gradle file:

    android {
    useLibrary 'org.apache.http.legacy'
    }


    developer.android.com/about/ve…/android-6.0-changes.html
    hc.apache.org/httpcomponents-client-4.5.x/android-port.html
    And i think to myself... what a wonderfuL World!

    Eddy schrieb:

    echo, var_dump etc...


    Okay, also ich nutze in miener PHP-Datei nur das:
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. $datei = fopen("passing.txt", "w");
    3. $text = $_GET["text"];
    4. fwrite($datei, $text);
    5. fclose($datei);
    6. ?>


    Demnach sollte auch nichts heruntergeladen werden.

    Nun zu dem HTTP-Request problem: Kann ich alles einfach ersetzen? ODer muss ich dann den kompletten code umschreiben?

    LG
    Projekte

    Quellcoder02 schrieb:

    Demnach sollte auch nichts heruntergeladen werden.


    Passt soweit.

    Wenn du das mit dem Apache Package nicht hinbekommst, kannst du die Klasse etwas anpassen, hier diese function, nur hier wird das Apache-PAckage verwendet.

    Java-Quellcode

    1. private String download(String url) {
    2. String text = "";
    3. String line;
    4. try {
    5. HttpClient client = new DefaultHttpClient();
    6. HttpGet get = new HttpGet(url);
    7. HttpResponse response = client.execute(get);
    8. InputStream in = response.getEntity().getContent();
    9. BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    10. while ((line = reader.readLine()) != null) {
    11. text += line;
    12. }
    13. return text;
    14. } catch (IOException io) {
    15. return "Downloadfehler";
    16. }
    17. }


    Hab jetzt mal geschaut, HttpURLConnection isses:
    developer.android.com/referenc…et/HttpURLConnection.html
    And i think to myself... what a wonderfuL World!

    Eddy schrieb:

    developer.android.com/referenc…et/HttpURLConnection.html


    Habe jetzt mal den Code von der Seite die du mir geschickt hast verwendet, die App läuft durch ohne zu crashen, allerdings kommen in der Konsole viele Errors.
    Code:
    Spoiler anzeigen

    Quellcode

    1. public static void httpRequest(String targetURL) throws IOException {
    2. URL url = new URL(targetURL);
    3. HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    4. try {
    5. InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    6. new InputStreamReader(in);
    7. } finally {
    8. urlConnection.disconnect();
    9. }
    10. }



    Errors
    Spoiler anzeigen

    D/NetworkSecurityConfig: No Network Security Config specified, using platform default
    W/System.err: android.os.NetworkOnMainThreadException
    W/System.err: at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
    W/System.err: at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:86)
    W/System.err: at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
    W/System.err: at java.net.InetAddress.getAllByName(InetAddress.java:752)
    W/System.err: at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
    W/System.err: at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187)
    W/System.err: at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156)
    W/System.err: at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98)
    W/System.err: at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345)
    W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328)
    W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
    W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
    W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405)
    W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
    W/System.err: at lukas.ftpTxt.getHttpRequest.httpRequest(getHttpRequest.java:14)
    W/System.err: at lukas.ftpTxt.MainActivity.onClick(MainActivity.java:35)
    W/System.err: at android.view.View.performClick(View.java:5637)
    W/System.err: at android.view.View$PerformClick.run(View.java:22429)
    W/System.err: at android.os.Handler.handleCallback(Handler.java:751)
    W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
    W/System.err: at android.os.Looper.loop(Looper.java:154)
    W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6119)
    W/System.err: at java.lang.reflect.Method.invoke(Native Method)
    W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)


    In der Textdatei wurde auch nicht das umgeschrieben, was im targetLink steht, was darauf schließen lässt, dass die php garnicht aufgerufen wurde.
    Vielleicht kannst du dir darauf etwas reimen.

    LG
    Projekte

    Quellcoder02 schrieb:

    W/System.err: android.os.NetworkOnMainThreadException


    Das passiert, weil du das im MainThread der App machst, die anderen Fehler entstehen sehr wahrscheinlich darauf basierend. AFAIK alle Netzwerkzugriffe muessen in einem weiteren Thread/Task gehandelt werden. Siehe die Klasse StringLoader(erbt von AsyncTask), da ist es zu sehen. Benutze einfach den Code und schreibe die oben genennte Funktion um.
    And i think to myself... what a wonderfuL World!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Eddy“ ()

    Ich bin zwar nicht mehr wirklich in der Android Entwicklung unterwegs, aber eine Bibliothek hat sich trotzdem fest bei mir verankert. OkHttp (siehe square.github.io/okhttp), ist glaube ich genau das was du suchst.

    Gute Tutorials gibt es dazu auch zum Beispiel folgendes: vogella.com/tutorials/JavaLibrary-OkHttp/article.html

    Enthält folgendes Schnipsel:

    Java-Quellcode

    1. HttpUrl.Builder urlBuilder = HttpUrl.parse("https://api.github.help").newBuilder();
    2. urlBuilder.addQueryParameter("v", "1.0");
    3. urlBuilder.addQueryParameter("user", "vogella");
    4. String url = urlBuilder.build().toString();
    5. Request request = new Request.Builder()
    6. .url(url)
    7. .build();

    Könnte dir eventuell weiterhelfen :)

    EDIT:

    Java-Quellcode

    1. .addQueryParameter("text", "Der Text"); // übersetzung nach meinem Verständnis in ?text=Der Text

    Software being "Done" is like lawn being "Mowed". (Jim Benson)

    Eddy schrieb:

    weil du das im MainThread der App machst


    Nein tue ich eben nicht, ich habe eine extra Klasse dafür angelegt gehabt. Jetzt habe ich es mit AsyncTask versucht, allerdings kommen die selben fehler. Code:

    Spoiler anzeigen

    Java-Quellcode

    1. public class getHttpRequest extends AsyncTask<String, URL, String> {
    2. public static void httpRequest(String targetURL) throws IOException {
    3. URL url = new URL(targetURL);
    4. HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    5. try {
    6. InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    7. new InputStreamReader(in);
    8. } finally {
    9. urlConnection.disconnect();
    10. }
    11. }
    12. @Override
    13. protected String doInBackground(String... params) {
    14. return null;
    15. }
    16. }



    LG
    Projekte

    Eddy schrieb:

    Poste mal den Code der Activity in welcher du die Klasse nutzt.


    Activity:
    Spoiler anzeigen

    Java-Quellcode

    1. package lukas.ftpTxt;
    2. import android.support.v7.app.AppCompatActivity;
    3. import android.os.Bundle;
    4. import android.view.View;
    5. import android.webkit.WebView;
    6. import android.widget.Button;
    7. import android.view.View.OnClickListener;
    8. import android.widget.SearchView;
    9. public class MainActivity extends AppCompatActivity implements OnClickListener {
    10. Button btnShout;
    11. WebView WebViewMain;
    12. SearchView SearchViewMain;
    13. @Override
    14. protected void onCreate(Bundle savedInstanceState) {
    15. super.onCreate(savedInstanceState);
    16. setContentView(R.layout.activity_main);
    17. btnShout = (Button)findViewById(R.id.btnShout);
    18. btnShout.setOnClickListener(this);
    19. WebViewMain = (WebView)findViewById(R.id.wv1);
    20. SearchViewMain = (SearchView)findViewById(R.id.sv1);
    21. }
    22. @Override
    23. public void onClick(View v) {
    24. try {
    25. System.out.println("going to httpRequest");
    26. getHttpRequest.httpRequest("http://....esy.es/shout/passing.php?text=Test");
    27. } catch (Exception e) {
    28. e.printStackTrace();
    29. }
    30. }
    31. }



    Klasse getHttpRequest:
    Spoiler anzeigen

    Java-Quellcode

    1. package lukas.ftpTxt;
    2. import android.os.AsyncTask;
    3. import java.io.*;
    4. import java.net.HttpURLConnection;
    5. import java.net.URL;
    6. public class getHttpRequest extends AsyncTask<String, URL, String> {
    7. public static void httpRequest(String targetURL) throws IOException {
    8. URL url = new URL(targetURL);
    9. HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    10. try {
    11. InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    12. new InputStreamReader(in);
    13. } finally {
    14. urlConnection.disconnect();
    15. }
    16. }
    17. @Override
    18. protected String doInBackground(String... params) {
    19. return null;
    20. }
    21. }

    Projekte
    Also machst du das doch im MainThread! In doInBackground machste nichts nur ein nullgibste zurueck?

    Es reicht nicht die Funktion/Methode in eine Klasse zu packen welche von AsyncTask erbt und die Funktion dann einfach so zu callen. Schau mal wie ich meine Klasse nutze, in Post 2. Du brauchst eigendlich nur in meiner Klasse die Apache-Dinger in der schon gennanten Funktion austauschen(mit HttpURLConnection) und fertig.

    Hier ist alles wichtige ueber Asynctasks zu finden, solltest du dir unbedingt antun:
    developer.android.com/reference/android/os/AsyncTask.html
    And i think to myself... what a wonderfuL World!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eddy“ ()

    Eddy schrieb:

    Schau mal wie ich meine Klasse nutze


    Hab ich nachgeschaut, hab ich fast 1zu1 kopiert und nur meine httpRequest reingehaun. Resultat: Es wird true zurückgegeben, die Datei allerdings immernoch nicht beschrieben.

    MainActivity:
    Spoiler anzeigen

    Java-Quellcode

    1. package lukas.ftpTxt;
    2. import android.support.v7.app.AppCompatActivity;
    3. import android.os.Bundle;
    4. import android.view.View;
    5. import android.webkit.WebView;
    6. import android.widget.Button;
    7. import android.view.View.OnClickListener;
    8. import android.widget.SearchView;
    9. public class MainActivity extends AppCompatActivity implements OnClickListener {
    10. Button btnShout;
    11. WebView WebViewMain;
    12. SearchView SearchViewMain;
    13. @Override
    14. protected void onCreate(Bundle savedInstanceState) {
    15. super.onCreate(savedInstanceState);
    16. setContentView(R.layout.activity_main);
    17. btnShout = (Button)findViewById(R.id.btnShout);
    18. btnShout.setOnClickListener(this);
    19. WebViewMain = (WebView)findViewById(R.id.wv1);
    20. SearchViewMain = (SearchView)findViewById(R.id.sv1);
    21. }
    22. @Override
    23. public void onClick(View v) {
    24. httpRequest(".../passing.php?text=Test89");
    25. }
    26. public void httpRequest(String url) {
    27. getHttpRequest.DownloadCompleteListener dcl = new getHttpRequest.DownloadCompleteListener() {
    28. @Override
    29. public void onDownloadComplete(String result) {
    30. System.out.println(result);
    31. }
    32. };
    33. getHttpRequest loader = new getHttpRequest(dcl);
    34. loader.execute(url);
    35. }
    36. }



    getHttpRequest:
    Spoiler anzeigen

    Java-Quellcode

    1. package lukas.ftpTxt;
    2. import android.os.AsyncTask;
    3. import java.io.*;
    4. import java.net.HttpURLConnection;
    5. import java.net.URL;
    6. public class getHttpRequest extends AsyncTask<String, Void, String> {
    7. private DownloadCompleteListener dc = null;
    8. @Override
    9. protected String doInBackground(String... params) {
    10. String response = null;
    11. try {
    12. response = httpRequest(params[0]);
    13. } catch (IOException e) {
    14. e.printStackTrace();
    15. }
    16. return response;
    17. }
    18. public static String httpRequest(String targetURL) throws IOException {
    19. URL url = new URL(targetURL);
    20. HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
    21. try {
    22. InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    23. new InputStreamReader(in);
    24. }catch(IOException e) {
    25. return "false";
    26. } finally {
    27. urlConnection.disconnect();
    28. return "true";
    29. }
    30. }
    31. public interface DownloadCompleteListener {
    32. void onDownloadComplete(String result);
    33. }
    34. public getHttpRequest(DownloadCompleteListener dl) {
    35. this.dc = dl;
    36. }
    37. @Override
    38. protected void onPostExecute(String result) {
    39. dc.onDownloadComplete(result);
    40. }
    41. }



    Liegts an meiner Void? Wenn ja, was muss ich umschreiben?

    LG
    Projekte
    Ich sehe nicht das du die requestmethode festlegst, wie auch nicht verbindest urlConnection.connect. Hab das nun in deiner Klasse gemacht, haette mir auch meine Klasse aendern mussen, steige demnaechst auf AndroidStudio um, da pack ich die veralteten Dinger(ApacheClient) nicht rein. So hast du wieder Optional die moeglichkeit, mit der PHP etwas raus zu geben.

    Java-Quellcode

    1. package com.example.testproject;
    2. import android.os.AsyncTask;
    3. import java.io.*;
    4. import java.net.HttpURLConnection;
    5. import java.net.URL;
    6. public class getHttpRequest extends AsyncTask<String, Void, String> {
    7. private DownloadCompleteListener dc = null;
    8. @Override
    9. protected String doInBackground(String... params) {
    10. String response = null;
    11. try {
    12. response = httpRequest(params[0]);
    13. } catch (IOException e) {
    14. e.printStackTrace();
    15. }
    16. return response;
    17. }
    18. public String httpRequest(String targetURL) throws IOException {
    19. URL url= new URL(targetURL);
    20. HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
    21. urlConnection.setRequestMethod("GET");
    22. urlConnection.connect();
    23. try {
    24. BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
    25. StringBuilder stringBuilder = new StringBuilder();
    26. String line = null;
    27. while ((line = reader.readLine()) != null){
    28. stringBuilder.append(line + "\n");
    29. }
    30. urlConnection.disconnect();
    31. return stringBuilder.toString();
    32. } catch (IOException e) {
    33. urlConnection.disconnect();
    34. e.printStackTrace();
    35. }
    36. return "Fehler";
    37. }
    38. public interface DownloadCompleteListener {
    39. void onDownloadComplete(String result);
    40. }
    41. public getHttpRequest(DownloadCompleteListener dl) {
    42. this.dc = dl;
    43. }
    44. @Override
    45. protected void onPostExecute(String result) {
    46. dc.onDownloadComplete(result);
    47. }
    48. }

    And i think to myself... what a wonderfuL World!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eddy“ ()

    @Eddy leider funktioniert dieser Code nicht. Ich bekomme den fehler E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #3. Außerdem bekomme ich einen Fehler bei doInBackground. Diese Fehler kommen beim Debuggen.

    LG
    Quellcoder
    Projekte
    Echt? Poste mal alles aus dem Logcat. Benutzt du einen Emulator? Mit dem Emulator aus dem SDK, habe ich oefter schon Probleme gehabt(sobald Internet im Spiel war), mal gings, mal nicht. Der Code lief bei mir auch nicht im Emulator, auf einem realen Devices geht es, habe es unter android 4 und 5 probiert.
    And i think to myself... what a wonderfuL World!

    Eddy schrieb:

    Benutzt du einen Emulator?


    Ja, ich benutze einen Emulator.

    Log:
    Spoiler anzeigen

    03/23 17:12:56: Launching app $ adb push C:\Users\Lukas\Documents\Idea Projects\ftpTxt\app\build\outputs\apk\app-debug.apk /data/local/tmp/lukas.ftpTxt $ adb shell pm install -r "/data/local/tmp/lukas.ftpTxt" Success $ adb shell am start -n "lukas.ftpTxt/lukas.ftpTxt.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Client not ready yet..Connected to process 2342 on device Nexus_5_API_25 [emulator-5554] I/art: Not late-enabling -Xcheck:jni (already on) W/art: Unexpected CPU variant for X86 using defaults: x86 W/System: ClassLoader referenced unknown path: /data/app/lukas.ftpTxt-1/lib/x86 I/InstantRun: Instant Run Runtime started. Android package is lukas.ftpTxt, real application class is null. W/System: ClassLoader referenced unknown path: /data/app/lukas.ftpTxt-1/lib/x86 W/art: Verification of void android.support.v7.app.AppCompatActivity.onSupportActionModeFinished(android.support.v7.view.ActionMode) took 164.924ms W/art: Verification of void android.support.v7.app.AppCompatDelegateImplV9.<init>(android.content.Context, android.view.Window, android.support.v7.app.AppCompatCallback) took 168.509ms W/art: Verification of void android.support.v7.app.AppCompatDelegateImplV9.onConfigurationChanged(android.content.res.Configuration) took 186.435ms W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable W/System: ClassLoader referenced unknown path: /system/app/webview/lib/x86 D/ApplicationLoaders: ignored Vulkan layer search path /system/app/webview/lib/x86:/system/app/webview/webview.apk!/lib/x86:/system/lib:/vendor/lib for namespace 0xb1eba090 I/WebViewFactory: Loading com.android.webview version 52.0.2743.100 (code 275610010) I/cr_LibraryLoader: Time to load native libraries: 6 ms (timestamps 9492-9498) I/cr_LibraryLoader: Expected native library version number "52.0.2743.100", actual native library version number "52.0.2743.100" V/WebViewChromiumFactoryProvider: Binding Chromium to main looper Looper (main, tid 1) {88c0dc0} I/cr_LibraryLoader: Expected native library version number "52.0.2743.100", actual native library version number "52.0.2743.100" I/chromium: [INFO:library_loader_hooks.cc(143)] Chromium logging enabled: level = 0, default verbosity = 0 I/cr_BrowserStartup: Initializing chromium process, singleProcess=true [ 03-23 16:13:18.126 2342: 2342 D/ ] HostConnection::get() New Host Connection established 0x95d95180, tid 2342 [ 03-23 16:13:18.127 2342: 2342 W/ ] Process pipe failed W/cr_media: Requires BLUETOOTH permission I/cr_DRP: No DRP key due to exception:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp W/cr_AwContents: onDetachedFromWindow called when already detached. Ignoring I/OpenGLRenderer: Initialized EGL, version 1.4 D/OpenGLRenderer: Swap behavior 1 E/EGL_emulation: tid 2786: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x95def040, error=EGL_BAD_MATCH D/NetworkSecurityConfig: No Network Security Config specified, using platform default --------- beginning of crash E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #3 Process: lukas.ftpTxt, PID: 2342 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:325) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:119) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) at java.net.InetAddress.getAllByName(InetAddress.java:752) at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126) at lukas.ftpTxt.getHttpRequest.httpRequest(getHttpRequest.java:26) at lukas.ftpTxt.getHttpRequest.doInBackground(getHttpRequest.java:15) at lukas.ftpTxt.getHttpRequest.doInBackground(getHttpRequest.java:7) at android.os.AsyncTask$2.call(AsyncTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname) at libcore.io.Posix.android_getaddrinfo(Native Method) at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:106) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) at java.net.InetAddress.getAllByName(InetAddress.java:752) at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126) at lukas.ftpTxt.getHttpRequest.httpRequest(getHttpRequest.java:26) at lukas.ftpTxt.getHttpRequest.doInBackground(getHttpRequest.java:15) at lukas.ftpTxt.getHttpRequest.doInBackground(getHttpRequest.java:7) at android.os.AsyncTask$2.call(AsyncTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied) at libcore.io.Posix.android_getaddrinfo(Native Method) at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:106) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) at java.net.InetAddress.getAllByName(InetAddress.java:752) at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126) at lukas.ftpTxt.getHttpRequest.httpRequest(getHttpRequest.java:26) at lukas.ftpTxt.getHttpRequest.doInBackground(getHttpRequest.java:15) at lukas.ftpTxt.getHttpRequest.doInBackground(getHttpRequest.java:7) at android.os.AsyncTask$2.call(AsyncTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) D/OpenGLRenderer: endAllActiveAnimators on 0x9463fb80 (RippleDrawable) with handle 0xa44473a0 Application terminated.


    Ich habe derzeit leider auch nicht die Möglichkeit die App auf einem realen Device zu debuggen.

    LG
    Projekte