1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. EcDroid, 13.06.2011 #1
    EcDroid

    EcDroid Threadstarter Neuer Benutzer

    Hallo allerseits,

    ich beschäftige mich erst seit kurzem mit JAVA und Android und habe eine Problem:

    Folgende Code funktioniert:
    private void ladeDaten(String query1) {

    String keyword = "name1 LIKE '%"+"Test"+"%'";
    Cursor klassenCursor = mDatenbank.query(
    "Tabelle",
    new String[] {
    "name1",
    "name2",
    },
    keyword, null, null, null, null
    );

    ...und wenn ich den String "Test" durch query1 ersetze, dann stürzt der Emulator ab :sad:
    String keyword = "name1 LIKE '%"+query1+"%'";

    Hat jemand eine Idee, warum das so ist? Ich habe mir keyword auch schon in einem Toast ausgeben lassen...beide Male erhalte ich den selben String, was ja auch okay wäre...

    Danke
    EcDroid


    PS: Ich verwende eclipde als IDE...
     
    Zuletzt bearbeitet: 13.06.2011
  2. Kranki, 13.06.2011 #2
    Kranki

    Kranki Ehrenmitglied

    Bitte bei Abstürzen immer Logcat-Ausgabe posten.
     
  3. EcDroid, 13.06.2011 #3
    EcDroid

    EcDroid Threadstarter Neuer Benutzer

    Uff...LogCat...davon habe ich schon gehört :wubwub:
    Da muss ich mich wieder reinlesen...:wubwub:

    Eins habe ich gerade rausgefunden...
    ladeDaten(String query1) wird in einem onItemSelected eines Spinners aufgerufen und es sieht fast danach aus, dass query1 noch null ist...puh...muss man da etwas bestimmtes einfügen, damit ladeDaten(String query1) erst aufgerufen wird, wenn der Wert (=Eintrag des Spinners) fix da ist...ein Delay??
     
  4. swordi, 14.06.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    wie schon gesagt - logcat posten ( dafür musst dich nicht wirklich einlesen, ist nur ein kopieren von roten zeilen :) in der logcat ansicht )

    alles andere ist ein ratespiel :D
     
  5. EcDroid, 14.06.2011 #5
    EcDroid

    EcDroid Threadstarter Neuer Benutzer

    Ja, sorry :wubwub:

    06-14 07:08:51.212 .....
    06-14 07:10:29.332: WARN/PackageManager(39): Code path for pkg : test.spinner1 changing from /data/app/test.spinner1-1.apk to /data/app/test.spinner1-2.apk
    06-14 07:10:29.363: WARN/PackageManager(39): Resource path for pkg : test.spinner1 changing from /data/app/test.spinner1-1.apk to /data/app/test.spinner1-2.apk
    06-14 07:10:31.372: WARN/RecognitionManagerService(39): no available voice recognition services found
    06-14 07:10:36.652: WARN/ActivityThread(326): Application test.spinner1 is waiting for the debugger on port 8100...
    06-14 07:10:45.132: WARN/ActivityManager(39): Launch timeout has expired, giving up wake lock!
    06-14 07:10:46.522: WARN/ActivityManager(39): Activity idle timeout for HistoryRecord{45fd8260 test.spinner1/.SpinnerActivity}

    Ufff...
     
    Zuletzt bearbeitet: 14.06.2011
  6. EcDroid, 14.06.2011 #6
    EcDroid

    EcDroid Threadstarter Neuer Benutzer

    Und so ist die LogCat, wenn ich den String mit einem Fixwert setze:

    06-14 07:25:57.953....06-14 07:27:22.198:

    WARN/PackageManager(68): Code path for pkg : test.spinner1 changing from /data/app/test.spinner1-2.apk to /data/app/test.spinner1-1.apk
    06-14 07:27:22.219: WARN/PackageManager(68): Resource path for pkg : test.spinner1 changing from /data/app/test.spinner1-2.apk to /data/app/test.spinner1-1.apk
    06-14 07:27:27.248: WARN/RecognitionManagerService(68): no available voice recognition services found
    06-14 07:27:39.099: ERROR/CursorWindow(317): need to grow: mSize = 1048576, size = 99, freeSpace() = 24, numRows = 5405
    06-14 07:27:39.099: ERROR/CursorWindow(317): not growing since there are already 5405 row(s), max size 1048576
    06-14 07:27:39.129: ERROR/CursorWindow(317): The row failed, so back out the new row accounting from allocRowSlot 5404
    06-14 07:27:39.129: ERROR/Cursor(317): Failed allocating fieldDir at startPos 0 row 5404
    06-14 07:27:50.018: ERROR/CursorWindow(317): need to grow: mSize = 1048576, size = 99, freeSpace() = 24, numRows = 5405
    06-14 07:27:50.018: ERROR/CursorWindow(317): not growing since there are already 5405 row(s), max size 1048576
    06-14 07:27:50.028: ERROR/CursorWindow(317): The row failed, so back out the new row accounting from allocRowSlot 5404
    06-14 07:27:50.038: ERROR/Cursor(317): Failed allocating fieldDir at startPos 0 row 5404
    06-14 07:27:50.198: WARN/InputManagerService(68): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@45030b30


    ...da gibt es kein Problem.
     
    Zuletzt bearbeitet: 14.06.2011
  7. EcDroid, 14.06.2011 #7
    EcDroid

    EcDroid Threadstarter Neuer Benutzer

    Eins finde ich auch komisch, aber das liegt wohl an meinen beschränkten Java-Kenntnissen....

    Das funktioniert:
    Cursor klassenCursor = mDatenbank.query(
    "Tabelle",
    new String[] {
    "feld1",
    "feld2"
    },
    null, null, null, null,null );

    und das nicht:
    String keyword = null;
    Cursor klassenCursor = mDatenbank.query(
    "Tabelle",
    new String[] {
    "feld1",
    "feld2"
    },
    keyword, null, null, null,null );

    Kann man einen String nicht null setzen?
     
    Zuletzt bearbeitet: 14.06.2011
  8. DieGoldeneMitte, 14.06.2011 #8
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Gah doch mal mit dem Debugger durch und sag erstmal, bei welcher Zeile der Emulator abstürzt (und sag uns dann nicht nur die Zeilennummer :D). Und sage auch, was Du mit "abstürzen" eigentlich meinst. Meinst Du, dass Dein Programm mit einem Fatal Close abstürzt? Oder verschwindet der ganze Emulator?

    Kann es sein, dass Du "Pokemon Exception Handlung" (gotta catch them all) betreibst und die eigentliche Fehlermeldung unterdrückst? :D
     
    the_alien gefällt das.
  9. the_alien, 14.06.2011 #9
    the_alien

    the_alien Android-Lexikon

    Haha, das ist super, das muss ich mir merken :D
     
  10. OWLer, 14.06.2011 #10
    OWLer

    OWLer Neuer Benutzer

    Hi :)

    Ich bin zwar neu in dem Geschäft, aber vielleicht lohnt es sich ja mal folgende Idee auszuprobieren:
    String keyword = "name1 LIKE '%?%'";
    Cursor klassenCursor = mDatenbank.query(
    "Tabelle",
    new String[] {
    "name1",
    "name2",
    },
    keyword, new String[] {query1}, null, null, null
    );

    name1 ist doch auch als Spalte in der DB definiert, oder?

    HTH,
    OWLer
     
  11. EcDroid, 14.06.2011 #11
    EcDroid

    EcDroid Threadstarter Neuer Benutzer

    So Problem gelöst...Im Spinner war der erste Eintrag ein Eintrag, den es nicht in der Datenbankliste gibt...ich muss da wohl noch eine Fehlerabfrage oder ähnliches einbauen.

    Danke
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Komplette SQLite Datenbank verschlüsseln Android App Entwicklung Dienstag um 12:02 Uhr
[OFFEN] SQLITE insert gibt negative id zurück Android App Entwicklung Montag um 21:16 Uhr
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung 24.05.2017
[ERLEDIGT] put in HashMap bringt App zum abstürzen Android App Entwicklung 22.05.2017
[ERLEDIGT] Problem mit Async Task und auszuführender Aufgabe Android App Entwicklung 02.05.2017
[ERLEDIGT] In SQLite DB auf nächsten/vorherigen Datensatz zugreifen Android App Entwicklung 23.03.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Excel Dokument mithilfe von JExcelAPI auslesen funktioniert nicht :/ Android App Entwicklung 02.03.2017
SQLite asynchron benutzen Android App Entwicklung 26.02.2017
Du betrachtest das Thema "String-Problem (bei Sqlite-query)" im Forum "Android App Entwicklung",