| |||||||
Das Thema "String-Problem (bei Sqlite-query)" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 13.06.2011
Beiträge: 10
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| 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 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... Geändert von EcDroid (13.06.2011 um 20:12 Uhr) Grund: Titel |
| | |
| | #2 (permalink) |
| Ehren-Mitglied |
Bitte bei Abstürzen immer Logcat-Ausgabe posten.
__________________ CyanogenMod 7 Nightly - AmonRa Recovery 2.0 - Nexus One Kein Support via PN und E-Mail. Bitte das Forum nutzen. "Es ist Mode geworden, die Freiheitsrechte des Bürgers in den Mittelpunkt zu stellen." - Siegfried Kauder |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 13.06.2011
Beiträge: 10
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Uff...LogCat...davon habe ich schon gehört Da muss ich mich wieder reinlesen... ![]() 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 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
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
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 13.06.2011
Beiträge: 10
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Ja, sorry 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... Geändert von EcDroid (14.06.2011 um 09:32 Uhr) Grund: gekürzt |
| | |
| | #6 (permalink) |
| Neuer Benutzer Registriert seit: 13.06.2011
Beiträge: 10
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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. Geändert von EcDroid (14.06.2011 um 09:32 Uhr) Grund: gekürzt |
| | |
| | #7 (permalink) |
| Neuer Benutzer Registriert seit: 13.06.2011
Beiträge: 10
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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? Geändert von EcDroid (14.06.2011 um 13:58 Uhr) Grund: Korrektur |
| | |
| | #8 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
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 ). 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?
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| Folgender Benutzer bedankt sich bei DieGoldeneMitte für diesen Beitrag: | the_alien (14.06.2011) |
| | #10 (permalink) |
| Neuer Benutzer Modell: Samsung Galaxy S (I9000) Registriert seit: 13.06.2011
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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 |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| R.string.stringValue | mr.freeze | Android App Entwicklung | 1 | 15.02.2011 16:26 |
| String parsen | Gingerbread | Android App Entwicklung | 3 | 14.02.2011 09:26 |
| SQLite: Text mit String vergleichen? | rollobollo | Android App Entwicklung | 2 | 05.02.2011 10:34 |
| String resource in einer String resource ansprechen | computer_freak | Android App Entwicklung | 6 | 31.01.2011 17:39 |
| String -> ACSII -> String | hobride | Android App Entwicklung | 4 | 15.09.2010 13:13 |