MySQL-Verbindung kommt nicht zu stande / keine Reaktion

  • Antworten:28
LGD
  • Forum-Beiträge: 15

28.09.2014, 20:42:09 via Website

Guten Abend,

ich bin relativ neu hier und habe das Problem, dass mit meinem Code einfach nichts passiert...
Die Log's werden nicht ausgeben, was heißen muss, dass es funktioniert. Der Text verändert sich aber nicht!
Ich glaub allerdings, dass die Activity erst garnicht richtig geladen wird, da "STEP%" erst garnicht angezeigt wird?

Code:

public class Activity_MySQL extends Activity {
/** Called when the activity is first created. */

private TextView resultView;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity__my_sql);
    StrictMode.enableDefaults(); //STRICT MODE ENABLED
    resultView = (TextView) findViewById(R.id.result);
    resultView.setText("STEP1");
    getData();
    resultView.setText("STEP1/2");
}

public void getData(){
    String result = "";
    InputStream isr = null;
    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("(Link entfernt)"); //YOUR PHP SCRIPT ADDRESS
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        isr = entity.getContent();
        resultView.setText("STEP2");
    }
    catch(Exception e){
        Log.e("log_tag", "Error in http connection "+e.toString());
        resultView.setText("Es konnte keine Verbindung zum Server hergestellt werden!");
    }
    //convert response to string
    try{
        BufferedReader reader = new BufferedReader(new InputStreamReader(isr,"iso-8859-1"),8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        isr.close();
        resultView.setText("STEP3");
        result=sb.toString();
    }
    catch(Exception e){
        Log.e("log_tag", "Error  converting result "+e.toString());
    }

    //parse json data
    try {
        String s = "";
        JSONArray jArray = new JSONArray(result);

        for(int i=0; i<jArray.length();i++){
            JSONObject json = jArray.getJSONObject(i);
            s = s +
                    "Betreff : "+json.getString("betreff")+" "+json.getString("betreff")+"\n"+
                    "Text : "+json.getInt("text")+"\n"+
                    "Datum : "+json.getString("datum")+"\n\n";
        }
        resultView.setText("STEP4");
        resultView.setText(s);
        resultView.setText("STEP5-FERTIG");

    } catch (Exception e) {
        // TODO: handle exception
        Log.e("log_tag", "Error Parsing Data "+e.toString());
    }

}

}

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

28.09.2014, 20:52:18 via App

Hallo LGD,
Herzlich wilkommen hier im Forum :)

Theoretisch müsstest du im LogCat eine NetworkOnMainException bekommen, da du die Netzwerkoperationen nicht im Externem Thread ausführst. Du benutzt zwas strictMode aber das ist nicht von Vorteil.
https://www.nextpit.de/forum/568854/tutorial-download-einer-webseite Ein tut für dich :)

Welche ide benutzt du?
Am besten du benutzt den debugger damit kannst du prüfen an welcher stelle die App hängen bleibt.

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

28.09.2014, 20:58:54 via Website

Pascal P.

Hallo LGD,
Herzlich wilkommen hier im Forum :)

Theoretisch müsstest du im LogCat eine NetworkOnMainException bekommen, da du die Netzwerkoperationen nicht im Externem Thread ausführst. Du benutzt zwas strictMode aber das ist nicht von Vorteil.
https://www.nextpit.de/forum/568854/tutorial-download-einer-webseite Ein tut für dich :)

Welche ide benutzt du?
Am besten du benutzt den debugger damit kannst du prüfen an welcher stelle die App hängen bleibt.

LG Pascal

Vielen Dank, dein Link schaut ganz Interessant aus.
Werde ich mich morgen mit beschäftigen, gute nacht.:)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 17:17:25 via Website

Pascal P.

Hallo LGD,
Herzlich wilkommen hier im Forum :)

Theoretisch müsstest du im LogCat eine NetworkOnMainException bekommen, da du die Netzwerkoperationen nicht im Externem Thread ausführst. Du benutzt zwas strictMode aber das ist nicht von Vorteil.
https://www.nextpit.de/forum/568854/tutorial-download-einer-webseite Ein tut für dich :)

Welche ide benutzt du?
Am besten du benutzt den debugger damit kannst du prüfen an welcher stelle die App hängen bleibt.

LG Pascal

So.... bei mir schaut's jetzt so aus (habe den Code 1:1 übernommen)

package de.XXXXX.XXXXXX;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class Activity_TestNews extends Activity {

@Override
protected void onCreate(Bundle arg) {
    super.onCreate(arg);
    setContentView(R.layout.activity_test_news);
    startDownload();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity__test_news, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

private void startDownload() {
    Downloader.DownloadCompleteListener dcl = new Downloader.DownloadCompleteListener() {
            @Override
            public void onDownloadComplete(String result) {
                TextView tv = (TextView) findViewById(R.id.TestView);
                tv.setText(result);
                }
            };

        Downloader downloader = new Downloader(dcl);
        downloader.execute("XX");
    }

}

Jedoch funktioniert dies auch nicht, die Klasse habe ich ganz normal eingefügt.... (Android-Studio)

image

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 17:24:11 via Website

Komisch, hast du denn die Permission in der Mainifest gesetzt?
und kommen beim Starten/ausführen irgendwelche Fehler (LogCat)?
Bisher hat das tut nämlich bei jedem Funktioniert.

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 17:32:09 via Website

Pascal P.

Komisch, hast du denn die Permission in der Mainifest gesetzt?
und kommen beim Starten/ausführen irgendwelche Fehler (LogCat)?
Bisher hat das tut nämlich bei jedem Funktioniert.

LG Pascal

Ja, die Permisson habe ich....

Hast du villeicht eben Lust, per TeamViewer drüber zu schauen?
Würde mich wirklich freuen, und später das Problem trotzdem posten.... damit nachkömmlige es nicht mehr haben :)
HAB WAS GEFUNDEN:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1839)
at de.littlegamesdev.mysqltest.MyActivity.<init>(MyActivity.java:12)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)

— geändert am 29.09.2014, 18:34:37

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 17:33:33 via Website

Du hast Post :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 17:41:24 via Website

Pascal P.

Du hast Post :)

E-Mail ist auf dem Weg :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 18:28:57 via Website

Habe mir deinen Code mal angeschaut, aber ich muss sagen du hast noch einiges über die Android Programmierung zu lernen :P

  1. Es reicht nicht, einfach nur das Layout mit setContentView zu setzen um eine Activity aufzurufen. Um eine neue Activity zu starten benutzt man Intents.

  2. Man sucht nie ein Layout (TextView) vor der onCreate, bzw die Variable kannst du anlegen, aber nicht initialisieren, das führte acuh zu dem oben genannten Fehler.
    Um den Fehler zu lösen:

    TextView tv;
    @Override
    public void onCreate(Bundle arg) {
    super.onCreate(arg);
    setContentView(R.layout.activity_test_news);
    Log.e("TestMySQL", "STEP1";);
    tv = (TextView) findViewById(R.id.eineTextView);
    tv.setText("STEP1";);
    startDownload();
    }

Und das was in denen News drinne steht wäre schön ;)

Falls du inspirationen zur Technik etc. brauchst habe/bin dabei eine Schulapp inkl. Vertretungsplan etc. zu programmieren.
Schicke dir mal per PN inspirationen :)

LG Pascal

PS: Das menü ist so nicht wirklich sinnvoll, musse es mir erstmal umprogrammieren, bis es in meinem Emulator angezeigt wurde. Da gibts nämlich keine Menütaste..

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 18:45:06 via Website

Pascal P.

Habe mir deinen Code mal angeschaut, aber ich muss sagen du hast noch einiges über die Android Programmierung zu lernen :P

  1. Es reicht nicht, einfach nur das Layout mit setContentView zu setzen um eine Activity aufzurufen. Um eine neue Activity zu starten benutzt man [Intents][1].

  2. Man sucht nie ein Layout (TextView) vor der onCreate, bzw die Variable kannst du anlegen, aber nicht initialisieren, das führte acuh zu dem oben genannten Fehler.
    Um den Fehler zu lösen:

    TextView tv;
    @Override
    public void onCreate(Bundle arg) {
    super.onCreate(arg);
    setContentView(R.layout.activity_test_news);
    Log.e("TestMySQL", "STEP1";);
    tv = (TextView) findViewById(R.id.eineTextView);
    tv.setText("STEP1";);
    startDownload();
    }

Und das was in denen News drinne steht wäre schön ;)

Falls du inspirationen zur Technik etc. brauchst habe/bin dabei eine Schulapp inkl. Vertretungsplan etc. zu programmieren.
Schicke dir mal per PN inspirationen :)

LG Pascal

PS: Das menü ist so nicht wirklich sinnvoll, musse es mir erstmal umprogrammieren, bis es in meinem Emulator angezeigt wurde. Da gibts nämlich keine Menütaste..

[1]: X

Das PDF-Dokument kann ich leider nicht öffnen....

Ich habe es jetzt so:

public class Activity_TestNews extends Activity {

TextView tv;
@Override
public void onCreate(Bundle arg) {
    super.onCreate(arg);
    setContentView(R.layout.activity_test_news);
    Intent in = new Intent(Activity_TestNews.this,Activity_TestNews.class);
    startActivity(in);
    Log.e("TestMySQL", "STEP1");
    tv = (TextView) findViewById(R.id.eineTextView);
    tv.setText("STEP1");
    startDownload();
}

private void startDownload() {
    Downloader.DownloadCompleteListener dcl = new Downloader.DownloadCompleteListener() {
        @Override
        public void onDownloadComplete(String result) {
            tv.setText(result);
        }
    };

    Downloader downloader = new Downloader(dcl);
    downloader.execute("XXXX");
}

}

Doch verändern tut sich nichts... wenn ich die .php Datei so aufrufe, wird alles korrekt angezeigt!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 18:49:30 via Website

Wird wenigstens die neue Activity aufgerufen?
Bei welchem item click soll sie denn aus der Home aufgerufen werden?
Sorry aber dein start Activity + Intent sind fehl am Platz, so müssen in dein Menü, da wo du den Download starten /bew. die neue Activity öffenen willst.

LG Pascal
PS: Ligt an den Leerzeichen im Link, ich schicks dir neu.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 19:04:10 via Website

Pascal P.

Wird wenigstens die neue Activity aufgerufen?
Bei welchem item click soll sie denn aus der Home aufgerufen werden?
Sorry aber dein start Activity + Intent sind fehl am Platz, so müssen in dein Menü, da wo du den Download starten /bew. die neue Activity öffenen willst.

LG Pascal
PS: Ligt an den Leerzeichen im Link, ich schicks dir neu.

Habs jetzt geschafft, jedoch wie bekomme ich einen Zeilenumbruch hin?
Was muss in meine .php Datei, oder doch im Android-Script?

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 19:29:12 via Website

Pascal P.

Du hast jetzt deinen Eintrag in HTML Formatiert.
Entweder du behälst die HTML Formatierung bei und nutzt das hier: Entfernt wegen ANTI-SPAM

Oder du ersetzt alle <br> zu /n

LG Pascal

Ich habe alle <br> mit \n und /n ausgetauscht.
Beides funktioniert nicht, der HTML-Converter sieht ganz nett aus, jedoch weiß ich nicht, wie ich Ihn richtig einfüge & benutze....

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 19:52:52 via Website

Ok, das sind aber alles Grundlagen, zudem sollte dies ersichtlich sein aus dem Link von mir.
Zum Buch:
Ich selbst habe ohne buch gelernt, hatte aber schon kleine Vorkentnisse ...
Ein buch kan nie schaden, da ich aber keines empfehlen kann, schau mal hier rein: https://www.nextpit.de/forum/585102/buecher-und-nachschlageseiten-zur-entwicklung-mit-fuer-android

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 19:54:09 via Website

in der Methode in der der Text gesetzt wird:

Spanned res= Html.fromHtml(result);
tv.setText(res);

Ist doch nicht schwierig oder?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 19:56:04 via Website

Pascal P.

in der Methode in der der Text gesetzt wird:

Spanned res= Html.fromHtml(result);
tv.setText(res);

Ist doch nicht schwierig oder?

Habs auch vorhin hinbekommen, hab kurz nachgedacht :D
Jedoch bekomme ich einen Fehler, wenn ich Tags wie <i> oder <b> benutze?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 19:57:27 via Website

Was denn für einen Fehler.Bitte immer genau beschreiben.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 19:59:16 via Website

Pascal P.

Was denn für einen Fehler.Bitte immer genau beschreiben.

Hier:

Catchable fatal Error: Object of class stdClass could not be converted to string in (....)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 20:04:17 via Website

Dann noch den Code und etwas meht des LogCats

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 20:06:00 via Website

Pascal P.

Dann noch den Code und etwas meht des LogCats

Der Fehler tritt nur auf, wenn ich die <b> oder <i> in mein ?php Script einfüge.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 20:06:54 via Website

Ich meinte aber mal deinen Java + HTML Code + LogCat...

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 20:08:47 via Website

Pascal P.

Ich meinte aber mal deinen Java + HTML Code + LogCat...

LG Pascal

tv.setText(Html.fromHtml(result));

echo "$row->titel<br><br>$row->text<br><br>$row->datum<br><br><br>";

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 20:12:42 via Website

Da kommt doch kein <i> oder ab> vor;
hier musst du gut darauf achten dass deine html mit allen Tags vollständig ist.

sonst kann es zu problemen kommen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 20:15:55 via Website

Pascal P.

Da kommt doch kein <i> oder ab> vor;
hier musst du gut darauf achten dass deine html mit allen Tags vollständig ist.

sonst kann es zu problemen kommen.

Wenn ich es so benutze, kommt der Fehler:

echo "$row-><b>titel</b><br><br>$row->text<br><br>$row-><l>datum</l><br><br><br>";

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 20:18:03 via Website

echo "$row-><b>titel</b><br><br>$row->text<br><br>$row-><i>datum</i><br><br><br>";

Am besten du versuchst das kleine "i" der Buchstabe sieht hier im Forum nicht wie ein "i" aus sonern eher wie ein "L".

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
LGD
  • Forum-Beiträge: 15

29.09.2014, 20:25:12 via Website

Pascal P.

echo "$row-><b>titel</b><br><br>$row->text<br><br>$row-><i>datum</i><br><br><br>";

Am besten du versuchst das kleine "i" der Buchstabe sieht hier im Forum nicht wie ein "i" aus sonern eher wie ein "L".

LG Pascal

Ich verstehe nicht, was du meinst :P
.... ist ein kleines i

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 20:29:25 via App

Ich kanns morgen mal testen. Aber für mich ist das kein i kopier einfach mal mein php code.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.959

29.09.2014, 23:49:12 via App

LGD

Pascal P.

Da kommt doch kein <i> oder ab> vor;
hier musst du gut darauf achten dass deine html mit allen Tags vollständig ist.

sonst kann es zu problemen kommen.

Wenn ich es so benutze, kommt der Fehler:

echo "$row-><b>titel</b><br><br>$row->text<br><br>$row-><l>datum</l><br><br><br>";

echo "<b>$row->titel</b><br><br>$row->text<br><br><i>$row->datum</i><br><br><br>";

denn kommt kein fehler

— geändert am 29.09.2014, 23:50:56

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten