SQL Lite Datenbank + ListView

P

pgnonick

Neues Mitglied
Threadstarter
Hallo zusammen,
ich habe mir zu dem oben genannten Thema einige Tutorials durchgelesen und die Developer Seite von Android studiert. Aber mein simples Programm wird einfach mit Unbekannter Fehler beendet. Im Debug steht auch nichts. Evtl. sind hier ein paar Entwickler die mir helfen können :) Ich programmiere mit Ecplipse Gallileo auf meinem MacBook Pro mit einem Virtual Emulator Android 1.5. Evtl. gibt es Logs die ich durchschauen kann oder so?

SqlTest.java
Code:
package de.pgnonick.android.sqltest;

import android.app.*;
import android.database.*;
import android.database.sqlite.*;
import android.os.Bundle;
import android.widget.*;

public class SqlTest extends ListActivity {
	
	final static String MY_DB_NAME = "Datenbank";
	final static String MY_DB_TABLE = "Kraftfahrzeuge";
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
    
    	SQLiteDatabase myDB = null; 
    	try {
    		myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
    		
    		myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE + "_id integer primary key autoincrement, name varchar(100);");
    		
    		myDB.execSQL("INSERT INTO " + MY_DB_TABLE + " (_id, name)" + " VALUES ('', 'Audi TT');"); 
    		
    		myDB.execSQL("INSERT INTO " + MY_DB_TABLE + " (_id, name)" + " VALUES ('', 'Honda Civic');");
    		
    		Cursor c = myDB.rawQuery("SELECT name" + " FROM " + MY_DB_TABLE, null);
    		
    		startManagingCursor(c);
    		
    		ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.fahrzeuge, c, new String[] { "name" }, new int[] { R.id.Name });
    		
    		this.setListAdapter(adapter);		
        } finally {
        	if (myDB != null) {
        		myDB.close();
        	}
        }
    }    
}
main.xml
Code:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:id="@+id/LinearLayout01" 
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android">
	
	<ListView android:id="@+id/ListView" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content">
	</ListView>
	
	<TextView android:id="@+id/TextView" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content" 
		android:text="No Data">
	</TextView>
	
</LinearLayout>
fahrzeuge.xml
Code:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:id="@+id/LinearLayout01" 
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android">
	
	<TextView android:id="@+id/Name" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content">
	</TextView>

</LinearLayout>
PS: Habe auch jetzt hinbekommen mein Samsung Galaxy unter Mac OSX als Debug Device einzurichten, gleiche Fehlermeldung. Also am virtuellen Debugger liegt es nicht. Irgendwas stimmt an meinem Code nicht. Ich finde leider auch nur veraltete Tutorials zu dem Thema ;(
 
Zuletzt bearbeitet:
S

swordi

Gewerbliches Mitglied
1. falsches forum
2. es muss doch irgendeine fehlermeldung geben
3. oder zumindest eine zeile, wo es abkracht.

ohne infos ist es immer schwer
 
P

pgnonick

Neues Mitglied
Threadstarter
Hi,
ja ich war mir unsicher wohin damit :) Das Entwickler Forum hörte sich so allgemein an. Aber ansonsten bitte dorthin verschieben :)

Wenn du mir einen Tipp geben kannst, wie ich am besten den Fehler ausfindig machen kann, wäre ich der sehr dankbar, denn wenn das Programm endet, wird nichts brauchbares ausgespuckt.
 
Zuletzt bearbeitet:
S

swordi

Gewerbliches Mitglied
naja

arbeitest du mit eclipse?? dann ruf mal die debug view auf. dort stehen sehr viele brauchbare ausgaben.
 
P

pgnonick

Neues Mitglied
Threadstarter
ja genau das habe ich gemacht (arbeite mit Ecplipse), aber irgendwie finde ich den Absturzfehler nicht, das ist total komisch. Ich habe schon mehrfach die Log durchforstet.
 
S

swordi

Gewerbliches Mitglied
kopier mal rein den log nach dem absturz - vielleicht seh ich da was
 
P

pgnonick

Neues Mitglied
Threadstarter
Ich habe mal versucht, den Teil heraus zu kopieren, der mit dem Start von meinem programm zutuen hat.

Code:
08-24 11:06:35.376: DEBUG/AndroidRuntime(695): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-24 11:06:35.376: DEBUG/AndroidRuntime(695): CheckJNI is ON
08-24 11:06:35.406: DEBUG/dalvikvm(612): GC freed 3464 objects / 230208 bytes in 223ms
08-24 11:06:35.585: DEBUG/HomeLoaders(612):   --> starting applications loader
08-24 11:06:35.935: INFO/ActivityManager(569): Stopping service: com.android.providers.downloads/.DownloadService
08-24 11:06:35.995: DEBUG/AndroidRuntime(695): --- registering native functions ---
08-24 11:06:36.975: DEBUG/PackageParser(569): Scanning package: /data/app/vmdl45896.tmp
08-24 11:06:37.155: INFO/PackageManager(569): Removing non-system package:de.pgnonick.android.sqltest
08-24 11:06:37.155: DEBUG/PackageManager(569): Removing package de.pgnonick.android.sqltest
08-24 11:06:37.155: DEBUG/PackageManager(569):   Activities: de.pgnonick.android.sqltest.SqlTest
08-24 11:06:37.325: DEBUG/dalvikvm(569): GC freed 5194 objects / 307184 bytes in 126ms
08-24 11:06:37.426: DEBUG/PackageManager(569): Scanning package de.pgnonick.android.sqltest
08-24 11:06:37.436: INFO/PackageManager(569): /data/app/vmdl45896.tmp changed; unpacking
08-24 11:06:37.446: DEBUG/installd(543): DexInv: --- BEGIN '/data/app/vmdl45896.tmp' ---
08-24 11:06:37.725: DEBUG/dalvikvm(708): DexOpt: load 38ms, verify 81ms, opt 1ms
08-24 11:06:37.735: DEBUG/installd(543): DexInv: --- END '/data/app/vmdl45896.tmp' (success) ---
08-24 11:06:37.735: DEBUG/PackageManager(569):   Activities: de.pgnonick.android.sqltest.SqlTest
08-24 11:06:38.255: INFO/installd(543): move /data/dalvik-cache/data@app@vmdl45896.tmp@classes.dex -> /data/dalvik-cache/data@app@de.pgnonick.android.sqltest.apk@classes.dex
08-24 11:06:38.265: DEBUG/PackageManager(569): New package installed in /data/app/de.pgnonick.android.sqltest.apk
08-24 11:06:38.366: DEBUG/ActivityManager(569): Uninstalling process de.pgnonick.android.sqltest
08-24 11:06:38.376: DEBUG/AndroidRuntime(695): Shutting down VM
08-24 11:06:38.376: DEBUG/dalvikvm(695): DestroyJavaVM waiting for non-daemon threads to exit
08-24 11:06:38.396: DEBUG/dalvikvm(695): DestroyJavaVM shutting VM down
08-24 11:06:38.396: DEBUG/dalvikvm(695): HeapWorker thread shutting down
08-24 11:06:38.396: DEBUG/dalvikvm(695): HeapWorker thread has shut down
08-24 11:06:38.406: DEBUG/jdwp(695): JDWP shutting down net...
08-24 11:06:38.406: DEBUG/dalvikvm(695): VM cleaning up
08-24 11:06:38.436: DEBUG/dalvikvm(695): LinearAlloc 0x0 used 627404 of 4194304 (14%)
08-24 11:06:38.735: DEBUG/dalvikvm(569): GC freed 2191 objects / 87840 bytes in 244ms
08-24 11:06:38.755: DEBUG/HomeLoaders(612): application intent received: android.intent.action.PACKAGE_REMOVED, replacing=true
08-24 11:06:38.755: DEBUG/HomeLoaders(612):   --> package:de.pgnonick.android.sqltest
08-24 11:06:38.755: DEBUG/HomeLoaders(612): application intent received: android.intent.action.PACKAGE_ADDED, replacing=true
08-24 11:06:38.765: DEBUG/HomeLoaders(612):   --> package:de.pgnonick.android.sqltest
08-24 11:06:38.765: DEBUG/HomeLoaders(612):   --> update package de.pgnonick.android.sqltest
08-24 11:06:38.795: WARN/ResourceType(569): No package identifier when getting value for resource number 0x7f060001
08-24 11:06:38.855: WARN/ResourceType(569): No package identifier when getting value for resource number 0x7f060000
08-24 11:06:38.855: WARN/ResourceType(569): No package identifier when getting value for resource number 0x7f060001
08-24 11:06:38.885: WARN/ResourceType(569): No package identifier when getting value for resource number 0x7f060000
08-24 11:06:39.215: DEBUG/AndroidRuntime(713): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-24 11:06:39.215: DEBUG/AndroidRuntime(713): CheckJNI is ON
08-24 11:06:39.446: DEBUG/AndroidRuntime(713): --- registering native functions ---
08-24 11:06:40.185: DEBUG/ActivityManager(569): Uninstalling process de.pgnonick.android.sqltest
08-24 11:06:40.185: INFO/ActivityManager(569): Starting activity: Intent { flags=0x10000000 comp={de.pgnonick.android.sqltest/de.pgnonick.android.sqltest.SqlTest} }
08-24 11:06:40.275: DEBUG/AndroidRuntime(713): Shutting down VM
08-24 11:06:40.275: DEBUG/dalvikvm(713): DestroyJavaVM waiting for non-daemon threads to exit
08-24 11:06:40.285: DEBUG/dalvikvm(713): DestroyJavaVM shutting VM down
08-24 11:06:40.285: DEBUG/dalvikvm(713): HeapWorker thread shutting down
08-24 11:06:40.295: DEBUG/dalvikvm(713): HeapWorker thread has shut down
08-24 11:06:40.295: DEBUG/jdwp(713): JDWP shutting down net...
08-24 11:06:40.295: DEBUG/dalvikvm(713): VM cleaning up
08-24 11:06:40.345: DEBUG/dalvikvm(713): LinearAlloc 0x0 used 637060 of 4194304 (15%)
08-24 11:06:40.376: INFO/ActivityManager(569): Start proc de.pgnonick.android.sqltest for activity de.pgnonick.android.sqltest/.SqlTest: pid=721 uid=10019 gids={}
08-24 11:06:40.505: INFO/jdwp(655): received file descriptor 25 from ADB
08-24 11:06:40.525: INFO/jdwp(659): received file descriptor 30 from ADB
08-24 11:06:40.545: INFO/jdwp(681): received file descriptor 27 from ADB
08-24 11:06:40.575: INFO/jdwp(721): received file descriptor 10 from ADB
08-24 11:06:40.725: WARN/ActivityThread(721): Application de.pgnonick.android.sqltest is waiting for the debugger on port 8100...
08-24 11:06:40.765: INFO/System.out(721): Sending WAIT chunk
08-24 11:06:40.865: INFO/dalvikvm(721): Debugger is active
08-24 11:06:41.015: INFO/System.out(721): Debugger has connected
08-24 11:06:41.015: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:41.115: INFO/ARMAssembler(569): generated scanline__00000077:03515104_00000000_00000000 [ 27 ipp] (41 ins) at [0x20ad88:0x20ae2c] in 6057000 ns
08-24 11:06:41.135: INFO/ARMAssembler(569): generated scanline__00000077:03515104_00001001_00000000 [ 64 ipp] (84 ins) at [0x20ae30:0x20af80] in 2478000 ns
08-24 11:06:41.215: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:41.425: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:41.625: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:41.829: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:42.037: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:42.241: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:42.445: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:42.645: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:42.853: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:43.057: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:43.261: INFO/System.out(721): waiting for debugger to settle...
08-24 11:06:43.465: INFO/System.out(721): debugger has settled (1503)
08-24 11:06:50.246: WARN/ActivityManager(569): Launch timeout has expired, giving up wake lock!
08-24 11:06:50.685: WARN/ActivityManager(569): Activity idle timeout for HistoryRecord{4367c7f0 {de.pgnonick.android.sqltest/de.pgnonick.android.sqltest.SqlTest}}
08-24 11:06:55.795: DEBUG/dalvikvm(610): GC freed 4035 objects / 228440 bytes in 108ms
08-24 11:07:05.165: DEBUG/dalvikvm(636): GC freed 2858 objects / 162592 bytes in 114ms
08-24 11:07:10.185: DEBUG/dalvikvm(659): GC freed 2792 objects / 171864 bytes in 132ms
08-24 11:07:15.165: DEBUG/dalvikvm(612): GC freed 2600 objects / 159920 bytes in 108ms
 
Zuletzt bearbeitet:
S

swordi

Gewerbliches Mitglied
ah mach mal ein catch zu dem try dazu und gib die meldung aus.

denke das könnte helfen
 
P

pgnonick

Neues Mitglied
Threadstarter
inwiefern stellst du dir das vor? Habe mir gerade die referenz durchgelesen und verstehe nicht wie und warum ich das machen soll :)

PS: Mich würde auch interessieren, woran du das nun ausgemacht hast?
 
Zuletzt bearbeitet:
S

swordi

Gewerbliches Mitglied
du hast folgendes

try {
//irgendwas
}finally {
//irgendwas
}

mach mal
try {
//irgendwas
}catch(Exception e) {
Log.e(e.getMessage());
}
finalley{
//irgendwas
}

das try {} verhindert wohl dass du eine fehlermeldung siehst. diese musst du dann schon ausgeben, damit du weißt woran es liegt

evtl auch einfach das try finally weglassen
 
P

pgnonick

Neues Mitglied
Threadstarter
ah danke, so hatte ich das in der Java Referenz auch verstanden. Wusste nur nicht welchen log ode print befehl ich nutzen sollte um den Fehler zu bekommen. Danke schonmal, evtl. löst sich das Problem dann von selbst, wenn ich weiß, worum es geht, ansonsten melde ich mich :)
 
P

pgnonick

Neues Mitglied
Threadstarter
Code:
08-24 14:25:12.439: DEBUG/AndroidRuntime(692): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-24 14:25:12.439: DEBUG/AndroidRuntime(692): CheckJNI is ON
08-24 14:25:12.788: DEBUG/HomeLoaders(608):   --> starting applications loader
08-24 14:25:13.128: DEBUG/AndroidRuntime(692): --- registering native functions ---
08-24 14:25:13.249: INFO/ActivityManager(567): Stopping service: com.android.providers.downloads/.DownloadService
08-24 14:25:14.129: DEBUG/PackageParser(567): Scanning package: /data/app/vmdl16828.tmp
08-24 14:25:14.359: INFO/PackageManager(567): Removing non-system package:de.pgnonick.android.sqltest
08-24 14:25:14.359: DEBUG/PackageManager(567): Removing package de.pgnonick.android.sqltest
08-24 14:25:14.359: DEBUG/PackageManager(567):   Activities: de.pgnonick.android.sqltest.SqlTest
08-24 14:25:14.429: DEBUG/PackageManager(567): Scanning package de.pgnonick.android.sqltest
08-24 14:25:14.429: INFO/PackageManager(567): /data/app/vmdl16828.tmp changed; unpacking
08-24 14:25:14.439: DEBUG/installd(543): DexInv: --- BEGIN '/data/app/vmdl16828.tmp' ---
08-24 14:25:14.748: DEBUG/dalvikvm(567): GC freed 5605 objects / 324536 bytes in 146ms
08-24 14:25:14.858: DEBUG/dalvikvm(706): DexOpt: load 166ms, verify 98ms, opt 1ms
08-24 14:25:14.868: DEBUG/installd(543): DexInv: --- END '/data/app/vmdl16828.tmp' (success) ---
08-24 14:25:14.868: DEBUG/PackageManager(567):   Activities: de.pgnonick.android.sqltest.SqlTest
08-24 14:25:14.938: INFO/installd(543): move /data/dalvik-cache/data@app@vmdl16828.tmp@classes.dex -> /data/dalvik-cache/data@app@de.pgnonick.android.sqltest.apk@classes.dex
08-24 14:25:14.938: DEBUG/PackageManager(567): New package installed in /data/app/de.pgnonick.android.sqltest.apk
08-24 14:25:15.059: DEBUG/AndroidRuntime(692): Shutting down VM
08-24 14:25:15.059: DEBUG/dalvikvm(692): DestroyJavaVM waiting for non-daemon threads to exit
08-24 14:25:15.079: DEBUG/dalvikvm(692): DestroyJavaVM shutting VM down
08-24 14:25:15.079: DEBUG/dalvikvm(692): HeapWorker thread shutting down
08-24 14:25:15.079: DEBUG/dalvikvm(692): HeapWorker thread has shut down
08-24 14:25:15.079: DEBUG/jdwp(692): JDWP shutting down net...
08-24 14:25:15.089: DEBUG/dalvikvm(692): VM cleaning up
08-24 14:25:15.099: DEBUG/ActivityManager(567): Uninstalling process de.pgnonick.android.sqltest
08-24 14:25:15.099: DEBUG/dalvikvm(692): LinearAlloc 0x0 used 627404 of 4194304 (14%)
08-24 14:25:15.149: DEBUG/HomeLoaders(608): application intent received: android.intent.action.PACKAGE_REMOVED, replacing=true
08-24 14:25:15.149: DEBUG/HomeLoaders(608):   --> package:de.pgnonick.android.sqltest
08-24 14:25:15.179: WARN/ResourceType(567): No package identifier when getting value for resource number 0x7f060001
08-24 14:25:15.199: WARN/ResourceType(567): No package identifier when getting value for resource number 0x7f060000
08-24 14:25:15.229: DEBUG/HomeLoaders(608): application intent received: android.intent.action.PACKAGE_ADDED, replacing=true
08-24 14:25:15.229: DEBUG/HomeLoaders(608):   --> package:de.pgnonick.android.sqltest
08-24 14:25:15.229: DEBUG/HomeLoaders(608):   --> update package de.pgnonick.android.sqltest
08-24 14:25:15.498: DEBUG/dalvikvm(567): GC freed 2397 objects / 117104 bytes in 238ms
08-24 14:25:15.548: WARN/ResourceType(567): No package identifier when getting value for resource number 0x7f060001
08-24 14:25:15.598: WARN/ResourceType(567): No package identifier when getting value for resource number 0x7f060000
08-24 14:25:15.908: DEBUG/AndroidRuntime(711): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-24 14:25:15.908: DEBUG/AndroidRuntime(711): CheckJNI is ON
08-24 14:25:16.139: DEBUG/AndroidRuntime(711): --- registering native functions ---
08-24 14:25:16.869: DEBUG/ActivityManager(567): Uninstalling process de.pgnonick.android.sqltest
08-24 14:25:16.869: INFO/ActivityManager(567): Starting activity: Intent { flags=0x10000000 comp={de.pgnonick.android.sqltest/de.pgnonick.android.sqltest.SqlTest} }
08-24 14:25:16.929: DEBUG/AndroidRuntime(711): Shutting down VM
08-24 14:25:16.929: DEBUG/dalvikvm(711): DestroyJavaVM waiting for non-daemon threads to exit
08-24 14:25:16.939: DEBUG/dalvikvm(711): DestroyJavaVM shutting VM down
08-24 14:25:16.939: DEBUG/dalvikvm(711): HeapWorker thread shutting down
08-24 14:25:16.939: DEBUG/dalvikvm(711): HeapWorker thread has shut down
08-24 14:25:16.939: DEBUG/jdwp(711): JDWP shutting down net...
08-24 14:25:16.939: DEBUG/dalvikvm(711): VM cleaning up
08-24 14:25:17.019: INFO/ActivityManager(567): Start proc de.pgnonick.android.sqltest for activity de.pgnonick.android.sqltest/.SqlTest: pid=719 uid=10019 gids={}
08-24 14:25:17.059: DEBUG/dalvikvm(711): LinearAlloc 0x0 used 637060 of 4194304 (15%)
08-24 14:25:17.109: DEBUG/jdwp(634): +++ peer disconnected
08-24 14:25:17.109: INFO/dalvikvm(634): Debugger has detached; object registry had 2 entries
08-24 14:25:17.298: WARN/ActivityThread(719): Application de.pgnonick.android.sqltest is waiting for the debugger on port 8100...
08-24 14:25:17.318: INFO/System.out(719): Sending WAIT chunk
08-24 14:25:17.538: INFO/ARMAssembler(567): generated scanline__00000077:03515104_00000000_00000000 [ 27 ipp] (41 ins) at [0x2824e0:0x282584] in 5578000 ns
08-24 14:25:17.558: INFO/ARMAssembler(567): generated scanline__00000077:03515104_00001001_00000000 [ 64 ipp] (84 ins) at [0x282588:0x2826d8] in 1603000 ns
08-24 14:25:18.109: INFO/jdwp(634): received file descriptor 20 from ADB
08-24 14:25:18.128: INFO/jdwp(655): received file descriptor 31 from ADB
08-24 14:25:18.158: INFO/jdwp(664): received file descriptor 25 from ADB
08-24 14:25:18.178: INFO/jdwp(680): received file descriptor 27 from ADB
08-24 14:25:18.198: INFO/jdwp(719): received file descriptor 13 from ADB
08-24 14:25:18.394: INFO/dalvikvm(719): Debugger is active
08-24 14:25:18.558: INFO/System.out(719): Debugger has connected
08-24 14:25:18.558: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:18.763: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:18.965: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:19.167: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:19.368: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:19.570: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:19.772: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:19.974: INFO/System.out(719): waiting for debugger to settle...
08-24 14:25:20.178: INFO/System.out(719): debugger has settled (1494)
08-24 14:25:26.927: WARN/ActivityManager(567): Launch timeout has expired, giving up wake lock!
08-24 14:25:27.254: WARN/ActivityManager(567): Activity idle timeout for HistoryRecord{4372ccd8 {de.pgnonick.android.sqltest/de.pgnonick.android.sqltest.SqlTest}}
08-24 14:25:32.509: DEBUG/dalvikvm(610): GC freed 4047 objects / 228872 bytes in 253ms
08-24 14:25:37.388: DEBUG/dalvikvm(634): GC freed 2802 objects / 160160 bytes in 115ms
08-24 14:25:42.399: DEBUG/dalvikvm(655): GC freed 2700 objects / 166712 bytes in 125ms
08-24 14:25:47.418: DEBUG/dalvikvm(608): GC freed 3120 objects / 187752 bytes in 135ms
Irgendwie bin ich blind Oo" Ich verstehe das einfach nicht. Ich habe auch einfach mal eine simple Hello World App auf meinem Samsung Galaxy gestartet. Kein Problem. Aber mir wird beim Debuggen auch kein fehler ausgespuckt. Programm wurde unerwartet beendet.

Edit: Ich habe en wenig manuelles Debugging gemacht :) Ich habe einfach alle Codezeilen rausgelöscht, die nichts mit dem Sqlite zutuen haben. Also nur die SQL Befehle bringen keinen Fehler. Also wird wohl die Datenbank erstellt. Dies habe ich nun weitergetrieben. Bis zur letzten Zeile wo der Adapter mit der ListView geknüpft wird. setListAdapter(); Die Stelle verursacht den Absturz. Nur warum Oo"
 
Zuletzt bearbeitet:
Taxi4110

Taxi4110

Fortgeschrittenes Mitglied
<ListView android:id="@+id/android:list"/>

müsste gehen... :)


Edit(h) sagt: So meine ich das...
<ListView android:id="@+id/android:list"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
 
Zuletzt bearbeitet:
S

swordi

Gewerbliches Mitglied
ahjap - die listactivity muss, bei eigenem layout, eine ListView mit der id list haben ohne das geht sowieso gar nichts
 
P

pgnonick

Neues Mitglied
Threadstarter
Ich bin am verzweifeln ;( Es stürzt immer noch ab. Ich habe das ganze Projekt auch nochmal neu angegangen.

main.java
Code:
package de.android.pgnonick.sqlitetest;

import android.app.*;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.*;

public class main extends ListActivity {
	
	final static String tag = "pgnonick";
   
    @Override
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        onCreateDB();
        setContentView(R.layout.main);
    }
    
    private void onCreateDB () {
    	final String MY_DB_NAME = "Test";
    	final String MY_DB_TABLE = "Autos";
    	
    	SQLiteDatabase myDB = null;
    	
    	myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
    	myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE + " (_id integer primary key autoincrement, name varchar(100))");
    	Log.v(tag, "Datenbank und Tabelle wurde erstellt!");
    	
    	myDB.execSQL("INSERT INTO " + MY_DB_TABLE + " (name)" + " VALUES ('Audi TT')"); 
		myDB.execSQL("INSERT INTO " + MY_DB_TABLE + " (name)" + " VALUES ('Honda Civic')");
		Log.v(tag, "Daten wurden hinzugefügt!");
		
		Cursor mCursor = myDB.rawQuery("SELECT *" + " FROM " + MY_DB_TABLE, null);	
		startManagingCursor(mCursor);
		Log.v(tag, "Cursor wurde erstellt!");
		
		ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.fahrzeuge, mCursor, new String[] { "name" }, new int[] { R.id.TextView });
		
		this.setListAdapter(adapter);			
    }
}
main.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView android:id="@+id/android:list" 
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content">
</ListView>
</LinearLayout>
fahrzeuge.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:id="@+id/LinearLayout" 
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:id="@+id/TextView" 
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content">
</TextView>
</LinearLayout>
wie würde ihr denn eine sqlite tabelle umsetzen mit einer liste?

EDIT: JETZT GEHT ES ABER NUR IN AUF MEINEM SAMSUNG GALAXY, ABER IM VIRTUAL DEVICE GIBT ES IMMER NOCH FEHLERMELDUNG.
 
Zuletzt bearbeitet:
S

swordi

Gewerbliches Mitglied
das is sehr misteriös. die gleichen ausgaben wie vorhin am vd?
 
P

pgnonick

Neues Mitglied
Threadstarter
ja ist wirklich komisch. also auf dem samsung geht es, habe sogar jetzt auch mehrere datenbankwerte integriert und ein kontext menü zum löschen von daten, geht bisher einbahnfrei. aber beim vd immer absturz, die listview wird kurz angezeigt und dann futsch :D naja
 
P

pgnonick

Neues Mitglied
Threadstarter
Hehe da bin ich wieder. Nun versuche ich als exemplarisches Beispiel ein Fahrtenbuch zu programmieren und natürlich objetorientiert umgesetzt. Wie man Quelltext sieht, habe ich sogar Log Nachrichten eingebaut, wenn Funktionen ausgeführt wurden, jedoch erscheinen die nicht im Log, das Programm stürzt sofort ab. Ich poste mal hier alles.

Main.java
Code:
package de.android.fahrtenbuch;

import android.app.ListActivity;
import android.os.Bundle;
import de.android.fahrtenbuch.Daten;
import android.database.sqlite.*;
import android.database.*;

public class Main extends ListActivity {
    
	public Daten mDaten;
	public Cursor mCursor;
	SQLiteDatabase mDB = null;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        mDB = mDaten.onOpenOrCreateDB();
        mCursor = mDaten.setCursor(mDB);
        
        mDaten.setAdapter(mCursor);
        
        setContentView(R.layout.main);
    }
    
}
Daten.java
Code:
package de.android.fahrtenbuch;

import android.database.sqlite.*;
import android.database.*;
import android.util.Log;
import android.widget.ListAdapter;
import android.widget.SimpleCursorAdapter;
import android.app.ListActivity;

public class Daten extends ListActivity  {
	
	final static String MY_DB_NAME = "fahrtenbuch";
	final static String MY_DB_TABLE = "fahrten";
	
	SQLiteDatabase mDB = null;
	public static final String TAG = "pgnonick: ";
	
	public SQLiteDatabase onOpenOrCreateDB () {
		mDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
		mDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE + " (_id integer primary key autoincrement, start varchar(100), ziel varchar(100), kilometer int(4))");
		mDB.execSQL("INSERT INTO " + MY_DB_TABLE + " (start, ziel, kilometer)" + " VALUES ('Bergneustadt', 'Hackenberg', '5')");
		Log.v(TAG, "Datenbank wurde erstellt!");
		return mDB;
	}
	
	public Cursor setCursor (SQLiteDatabase db) {
		Cursor mCursor = db.rawQuery("SELECT *" + " FROM " + MY_DB_TABLE + " ORDER BY _id", null);
		onCloseDB(db);
		Log.v(TAG, "Cursor wurde erstellt!");
		return mCursor;
	}
	
	public void setAdapter (Cursor c) {
		startManagingCursor(c);
		ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.listrow, c, new String[] { "start", "ziel", "kilometer" }, new int[] { R.id.Start, R.id.Ziel, R.id.Kilometer });
		Log.v(TAG, "Adapter wurde erstellt!");
		this.setListAdapter(adapter);
	}
	
	public void onCloseDB (SQLiteDatabase db) {
		db.close();
	}
	
}
main.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01" 
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android">
	<ListView android:id="@+id/android:list" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content">
	</ListView>
</LinearLayout>
listrow.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:id="@+id/LinearLayout02" 
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android">
	<TextView android:id="@+id/Start" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content">
	</TextView>
	<TextView android:id="@+id/Ziel" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content">
	</TextView>
	<TextView android:id="@+id/Kilometer" 
		android:layout_width="wrap_content" 
		android:layout_height="wrap_content">
	</TextView>
</LinearLayout>
Log
Code:
08-25 15:46:27.597: INFO/Process(30439): Sending signal. PID: 30439 SIG: 9
08-25 15:46:27.627: INFO/ActivityManager(1047): Process de.android.fahrtenbuch (pid 30439) has died.
08-25 15:46:27.817: WARN/InputManagerService(1047): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@435f3dc8
08-25 15:46:36.257: DEBUG/AndroidRuntime(30648): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-25 15:46:36.267: DEBUG/AndroidRuntime(30648): CheckJNI is OFF
08-25 15:46:36.597: DEBUG/AndroidRuntime(30648): --- registering native functions ---
08-25 15:46:36.607: INFO/jdwp(30648): received file descriptor 18 from ADB
08-25 15:46:37.657: DEBUG/ActivityManager(1047): Uninstalling process de.android.fahrtenbuch
08-25 15:46:37.667: INFO/ActivityManager(1047): Starting activity: Intent { flags=0x10000000 comp={de.android.fahrtenbuch/de.android.fahrtenbuch.Main} }
08-25 15:46:37.697: INFO/Launcher(3412): onPause 
08-25 15:46:37.697: INFO/mWorkspace(3412): closeDrawer  
08-25 15:46:37.707: DEBUG/AndroidRuntime(30648): Shutting down VM
08-25 15:46:37.707: DEBUG/dalvikvm(30648): DestroyJavaVM waiting for non-daemon threads to exit
08-25 15:46:37.717: DEBUG/dalvikvm(30648): DestroyJavaVM shutting VM down
08-25 15:46:37.717: DEBUG/dalvikvm(30648): HeapWorker thread shutting down
08-25 15:46:37.727: DEBUG/dalvikvm(30648): HeapWorker thread has shut down
08-25 15:46:37.727: DEBUG/jdwp(30648): JDWP shutting down net...
08-25 15:46:37.727: DEBUG/jdwp(30648): +++ peer disconnected
08-25 15:46:37.727: INFO/dalvikvm(30648): Debugger has detached; object registry had 1 entries
08-25 15:46:37.737: DEBUG/dalvikvm(30648): VM cleaning up
08-25 15:46:37.777: INFO/ActivityManager(1047): Start proc de.android.fahrtenbuch for activity de.android.fahrtenbuch/.Main: pid=30660 uid=10056 gids={}
08-25 15:46:37.787: DEBUG/dalvikvm(30648): LinearAlloc 0x0 used 644164 of 4194304 (15%)
08-25 15:46:37.817: INFO/jdwp(30660): received file descriptor 12 from ADB
08-25 15:46:37.947: WARN/ActivityThread(30660): Application de.android.fahrtenbuch is waiting for the debugger on port 8100...
08-25 15:46:37.967: INFO/System.out(30660): Sending WAIT chunk
08-25 15:46:37.977: INFO/dalvikvm(30660): Debugger is active
08-25 15:46:38.167: INFO/System.out(30660): Debugger has connected
08-25 15:46:38.177: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:38.377: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:38.577: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:38.777: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:38.987: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:39.187: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:39.397: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:39.597: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:39.797: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:40.007: INFO/System.out(30660): waiting for debugger to settle...
08-25 15:46:40.217: INFO/System.out(30660): debugger has settled (1390)
08-25 15:46:47.687: WARN/ActivityManager(1047): Launch timeout has expired, giving up wake lock!
08-25 15:46:47.900: WARN/ActivityManager(1047): Activity idle timeout for HistoryRecord{434ca680 {de.android.fahrtenbuch/de.android.fahrtenbuch.Main}}
 
S

Shinigami

Erfahrenes Mitglied
Hi.

Dann versuch ich mich mal:

Code:
mDB = mDaten.onOpenOrCreateDB();
ist mDaten streng genommen nicht null zur Laufzeit? Oder hab ich übersehen wo Du's instanziierst?

Zudem bezweifel ich, dass Deine Klasse "Daten" von ListActivity erben sollte. Könnte mir vorstellen, dass SQLiteOpenHelper geeigneter ist (Link zur Referenz).

Gruß,
Shini
 
Oben Unten