Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Fehler: Insert in SQLite Datenbank, Hilfe gesucht

Das Thema "Fehler: Insert in SQLite Datenbank, Hilfe gesucht" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 02.01.2012, 00:37   #1 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Beitrag Fehler: Insert in SQLite Datenbank, Hilfe gesucht

Hy

Ich bin noch relativ frisch wenn es darum geht Android-Apps zu entwickeln. Programmiert hab ich jedoch schon einiges während meines bald endenden Studiums der Informatik. Nun wollte ich mir Android mal angucken um einschätzen zu können ob und in Welchem Umfang ich es in einer ProjektArbeit und evtl Bachelorarbeit verwenden möchte. Nun zu meinem Projekt.

Geplant ist ein ziemlich simples Haushaltsbuch. Das Menü das sich nach dem Start der App zeigt ist bisher nur teilweise mit Funktionen hinterlegt.
Die Funktion Eintrag Hinzufügen ist implementiert aber anscheinend fehlerbehaftet.

Die Funktion Einträge anzeigen ist auch soweit fertig implementiert.

Die Funktionen Eintrag ändern bzw Eintrag löschen sind noch nicht implementiert, sollen aber auch nicht mehr per Menübutton sondern per ContextMenu bei den angezeigten Einträgen realisiert werden.

Dazu später evtl mehr wenn das derzeitige Problem behoben ist.

Beim Eintragen in die Datenbank (Funktion onClickEintraghinzufuegen der Klasse EintragHinzufuegenActivity) fliegen mir leider aber Exceptions um die Ohren.

LogCat:
Zitat:
01-01 23:27:42.136: E/AndroidRuntime(432): Uncaught handler: thread main exiting due to uncaught exception
01-01 23:27:42.157: E/AndroidRuntime(432): java.lang.IllegalStateException: Could not execute method of the activity
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.View$1.onClick(View.java:2031)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.View.performClick(View.java:2364)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.View.onTouchEvent(View.java:4179)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.widget.TextView.onTouchEvent(TextView.java :6541)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.View.dispatchTouchEvent(View.java:370 9)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.ViewGroup.dispatchTouchEvent(ViewGrou p.java:884)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.ViewGroup.dispatchTouchEvent(ViewGrou p.java:884)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.ViewGroup.dispatchTouchEvent(ViewGrou p.java:884)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.ViewGroup.dispatchTouchEvent(ViewGrou p.java:884)
01-01 23:27:42.157: E/AndroidRuntime(432): at com.android.internal.policy.impl.PhoneWindow$Decor View.superDispatchTouchEvent(PhoneWindow.java:1659 )
01-01 23:27:42.157: E/AndroidRuntime(432): at com.android.internal.policy.impl.PhoneWindow.super DispatchTouchEvent(PhoneWindow.java:1107)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.app.Activity.dispatchTouchEvent(Activity.j ava:2061)
01-01 23:27:42.157: E/AndroidRuntime(432): at com.android.internal.policy.impl.PhoneWindow$Decor View.dispatchTouchEvent(PhoneWindow.java:1643)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.ViewRoot.handleMessage(ViewRoot.java: 1691)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.os.Handler.dispatchMessage(Handler.java:99 )
01-01 23:27:42.157: E/AndroidRuntime(432): at android.os.Looper.loop(Looper.java:123)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.app.ActivityThread.main(ActivityThread.jav a:4363)
01-01 23:27:42.157: E/AndroidRuntime(432): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 23:27:42.157: E/AndroidRuntime(432): at java.lang.reflect.Method.invoke(Method.java:521)
01-01 23:27:42.157: E/AndroidRuntime(432): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:860)
01-01 23:27:42.157: E/AndroidRuntime(432): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:618)
01-01 23:27:42.157: E/AndroidRuntime(432): at dalvik.system.NativeStart.main(Native Method)
01-01 23:27:42.157: E/AndroidRuntime(432): Caused by: java.lang.reflect.InvocationTargetException
01-01 23:27:42.157: E/AndroidRuntime(432): at micka.finanzen.EintragHinzufuegenActivity.onClickE intragSpeichern(EintragHinzufuegenActivity.java:58 )
01-01 23:27:42.157: E/AndroidRuntime(432): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 23:27:42.157: E/AndroidRuntime(432): at java.lang.reflect.Method.invoke(Method.java:521)
01-01 23:27:42.157: E/AndroidRuntime(432): at android.view.View$1.onClick(View.java:2026)
01-01 23:27:42.157: E/AndroidRuntime(432): ... 21 more
01-01 23:27:42.157: E/AndroidRuntime(432): Caused by: java.lang.ClassCastException: java.lang.String
01-01 23:27:42.157: E/AndroidRuntime(432): ... 25 more
01-01 23:27:42.176: I/dalvikvm(432): threadid=7: reacting to signal 3
01-01 23:27:42.176: E/dalvikvm(432): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
Leider kann ich mit meinem Kenntnisstand keine Fehler entdecken. Sieht jemand von euch den Fehler?

Fehlerbehafteter Code(Auskommentiert klappt alles):

Code:
public void onClickEintragSpeichern(final View sfNormal) 
    {
        Spinner day = (Spinner) findViewById(R.id.datum_Tag);
        Spinner month = (Spinner) findViewById(R.id.datum_Monat);
        Spinner year = (Spinner) findViewById(R.id.datum_Jahr);
        EditText wofuer = (EditText) findViewById(R.id.hinzufuegen_zweck);
        EditText betrag = (EditText) findViewById(R.id.hinzufuegen_betrag);
        final Eintrag eintrag = new Eintrag();
        eintrag.day = (Integer) day.getSelectedItem();
        eintrag.month = (Integer) month.getSelectedItem();
        eintrag.year = (Integer) year.getSelectedItem();
        eintrag.wofuer = wofuer.getText().toString();
        eintrag.betrag = Double.parseDouble(betrag.getText().toString());
        myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
        myDB.execSQL("INSERT INTO "+MY_DB_TABLE+" (day, month, year, wofuer, betrag) "
                +"VALUES (" + eintrag.day +","+eintrag.month+","
                + eintrag.year +","+"'"+eintrag.wofuer +"',"
                + eintrag.betrag+ ");");
        Log.v(tag, "Insert new Eintrag: " + eintrag.day + "." +eintrag.month +"." + eintrag.year +", " + eintrag.wofuer + ", " + eintrag.betrag);
        final Intent i = new Intent(this, Startseiteactivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        startActivity(i);
    }
Micka ist offline   Mit Zitat antworten
Alt 02.01.2012, 01:48   #2 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Standard AW: Fehler: Insert in SQLite Datenbank, Hilfe gesucht

Dank einem Kollegen ist der Fehler beim eintragen nun behoben.

Neuer Quelltext:
Code:
public void onClickEintragSpeichern(final View sfNormal) 
    {
        Spinner day = (Spinner) findViewById(R.id.datum_Tag);
        Spinner month = (Spinner) findViewById(R.id.datum_Monat);
        Spinner year = (Spinner) findViewById(R.id.datum_Jahr);
        EditText wofuer = (EditText) findViewById(R.id.hinzufuegen_zweck);
        EditText betrag = (EditText) findViewById(R.id.hinzufuegen_betrag);
        final Eintrag eintrag = new Eintrag();
       
        eintrag.day = Integer.valueOf(day.getSelectedItem().toString()) ;
        eintrag.month = Integer.valueOf(month.getSelectedItem().toString()) ;
        eintrag.year = Integer.valueOf(year.getSelectedItem().toString()) ;
        eintrag.wofuer = wofuer.getText().toString();
        eintrag.betrag = Double.parseDouble(betrag.getText().toString());
        myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
        myDB.execSQL("INSERT INTO "+MY_DB_TABLE+" (day, month, year, wofuer, betrag) "
                +"VALUES (" + eintrag.day +","+eintrag.month+","
                + eintrag.year +","+"'"+eintrag.wofuer +"',"
                + eintrag.betrag+ ");");
        Log.v(tag, "Insert new Eintrag: " + eintrag.day + "." +eintrag.month +"." + eintrag.year +", " + eintrag.wofuer + ", " + eintrag.betrag);
        final Intent i = new Intent(this, Startseiteactivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        startActivity(i);
    }

Geändert von Micka (02.01.2012 um 01:54 Uhr)
Micka ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
sqlite Datenbank befüllen krackmoe Android App Entwicklung 7 12.12.2011 12:09
SQlite : Datenbank verschlüsselt oder keine gültige Datenbank RED-BARON Android App Entwicklung 0 07.04.2011 11:20
SQLite : Insert RED-BARON Android App Entwicklung 4 10.01.2011 16:54
SQLite Datenbank ausliefern Basti909851 Android App Entwicklung 15 07.10.2010 20:11
SQLite INSERT INTO > no such table MBPower Android App Entwicklung 20 12.03.2010 17:35




Du liest gerade: "Fehler: Insert in SQLite Datenbank, Hilfe gesucht" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.