von mySQL Datenbank -> PHP -> App (App stürtz ab)

  • hallo an alle die dies lesen, ich bin gerade an einem Projekt um ein paar Daten in einer App graphisch und als Text darzustellen, nicht mehr und nicht weniger. Angefangen habe ich es erstmal mit einer Variable aus meiner Datenbank von dem Anbieter www.000webhost.comversucht. Aus Tutorials hab ich versucht mal zuerst eine PHP Datei zu schreiben( die ich unten nochmals einpflegen werde) die auf dem gleichen Server liegt. Das PHP Skript funktioniert soweit hab’s schon mal ohne App getestet. Die App ruft auf Button druck eine separate classe auf die die Informationen über die PHP Datei bekommt und in ein TextView ausgibt(sollte ich später noch ändern). Doch beim drücken des Button stürzt die App ab und ich hab leider keinen Schimmer wieso.
    schonmal vielen Dank für eure hilfe.

  • erstmal danke für die schnelle Antwort. Habs gerade getestet leider das selbe Problem.
    Bei was ich mir auch noch nicht sicher bin ist der Aufruf der classe, vieleicht hab ich da einen Fehler Gemacht.

    Java: Aufruf in der MainActivity
    Button lesenBtn = (Button) findViewById(R.id.button2);
    
    
            lesenBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    new ActivityDataSource(textView).execute("Entrys");
                    Log.d("String", "onClick: ");// nur zum prüfen der Button Funktion
                }
            });
  • einen Thread startet man mit .start() mit execute(...) sollte es auch gehen.
    Aber du hast den Konstruktor der Kasse überladen und nutzt somit nicht den auto generierten Konstruktor, da müsstest du die super Kalsse auch aufrufen.


    public ActivityDataSource(TextView textView) {
    super();
    this.textView = textView;
    }

  • okay ich hab an der Stelle das super(); eingefügt leider immer noch das selbe Problem. Vieleicht hilft das bei der Problemlösung ich hab den code wie unten auskommentiert, danach stürtze es nicht ab natürlich lief es auch nicht.

  • So jetzt wird in der doInBackground garnichts mehr ausgeführ. Damit weißt du auch das der Fehler bei deiner URL Connection liegt.
    Hier ein Beispiel für den aufbau der Conektion. Habe den Task als innere Klasse erstellt ist aber bei externner das gleiche.



    main.xml

  • dieses mal stürtzte es nicht ab, das ist schon mal gut nur bekomme ich als result :
    "Permission denied (missing INTERNET permission?)"
    ich habe aber
    <uses-permission android:name="android.permission.INTERNET" />und <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />schon im AndroidManifest reingeschrieben. Mit dem Emulierten Smartphone komme ich normalerweise ins Internet.

  • Habe es doch nun schon öffters geschrieben das sich die Premission ab API 23 geändert haben, und es nicht mehr reicht nur die Premission in der Manifest Datei zu setzen.
    https://developer.android.com/…ssion-sdk-23-element.html
    https://www.androidhive.info/2…ow-m-runtime-permissions/


    setze zum test die SDK Version auf 22 "compileSdkVersion 22"

  • erstmal vielen Dank jogimuc du hast mir sehr geholfen. Ich programmier erst seit wenigen Tagen mit Java speziell jetzt mit Android Studio, da wusste ich das mit der Permission nicht. zudem wird es in vielen Tutorials eben noch anders erklärt. Jetzt funktioniert es.

  • Zitat

    wieso soll eine google lösung nicht elegant sein?

    Dies bezieht sich auf das Thema Premisson und nicht allgemein.
    Googgel hätte es auch dem Programmierer einfacher machen können. Android weiss welche Premission im Manifest gesetzt sind wenn diese nun in der App gebraucht werden kann es doch selber um erlaubnis fragen. Bei nein vom User wird eine Exception geworfen. So etwas wäre elegant.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!