Ich versuche eine Klasse zu starten, die nach Informationen in einer Datenbank sucht und sie dann auf dem Bildschirm anzeigt. es funktioniert gestern bis ich in Code hinzugefügt, um es Informationen in einer zweiten Tabelle zu überprüfen i sowohl nach dem Code werde und die logcat wie ich weiß nicht, warum dieseAndroid Klassen funktionieren nicht
public class WorkoutProgress extends ListActivity {
private DataBaseHelper datasource;
@Override
public void onCreate(Bundle savedInstanceState) {
/*requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);*/
super.onCreate(savedInstanceState);
setContentView(R.layout.progress);
datasource = new DataBaseHelper(this);
datasource.open();
fillData();
datasource.close();
}
private void fillData() {
// Get all of the notes from the database and create the item list
Cursor c = datasource.getAllTitles();
startManagingCursor(c);
String[] from = new String[] {DataBaseHelper.KEY_CODE, DataBaseHelper.KEY_DAYS,DataBaseHelper.KEY_BMI };
int[] to = { R.id.code, R.id.Days, R.id.BMI };
String[] from2 = new String[] {DataBaseHelper.KEY_DATE, DataBaseHelper.KEY_STEPS,DataBaseHelper.KEY_CALs };
int[] to2 = { R.id.date, R.id.steps, R.id.cals };
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
setListAdapter(notes);
SimpleCursorAdapter notes2 =
new SimpleCursorAdapter(this, R.layout.notes_row, c, from2, to2);
setListAdapter(notes);
}
public void add(View view) {
//Do nothing
}
public void delete(View view) {
datasource.open();
datasource.deleteFirst();
fillData();
datasource.close();
}
}
und das Protokoll Katze geschieht, wenn ich versuche zu Zugriff auf diese Klasse ist
04-06 01:10:42.293: E/global(22219): java.lang.UnsupportedOperationException
04-06 01:10:42.293: E/global(22219): at java.lang.VMThread.stop(VMThread.java:85)
04-06 01:10:42.293: E/global(22219): at java.lang.Thread.stop(Thread.java:1391)
04-06 01:10:42.293: E/global(22219): at java.lang.Thread.stop(Thread.java:1356)
04-06 01:10:42.293: E/global(22219): at com.b00348312.workout.Splashscreen$1.run(Splashscreen.java:42)
04-06 01:10:45.393: I/Database(22219): sqlite returned: error code = 1, msg = AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY
04-06 01:10:45.393: E/Database(22219): Failure 1 (AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY) on 0x2c0e38 when preparing 'create table goals (_id primary key autoincrement, code text not null,days title text not null, bmi text not null);'.
04-06 01:10:45.403: D/AndroidRuntime(22219): Shutting down VM
04-06 01:10:45.403: W/dalvikvm(22219): threadid=1: thread exiting with uncaught exception (group=0x400259f8)
04-06 01:10:45.453: D/dalvikvm(22219): GC_FOR_MALLOC freed 4012 objects/253248 bytes in 32ms
04-06 01:10:45.453: E/AndroidRuntime(22219): FATAL EXCEPTION: main
04-06 01:10:45.453: E/AndroidRuntime(22219): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.b00348312.workout/com.b00348312.workout.WorkoutProgress}: android.database.sqlite.SQLiteException: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY: create table goals (_id primary key autoincrement, code text not null,days title text not null, bmi text not null);
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.ActivityThread.access$2300(ActivityThread.java:135)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.os.Looper.loop(Looper.java:144)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.ActivityThread.main(ActivityThread.java:4937)
04-06 01:10:45.453: E/AndroidRuntime(22219): at java.lang.reflect.Method.invokeNative(Native Method)
04-06 01:10:45.453: E/AndroidRuntime(22219): at java.lang.reflect.Method.invoke(Method.java:521)
04-06 01:10:45.453: E/AndroidRuntime(22219): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
04-06 01:10:45.453: E/AndroidRuntime(22219): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-06 01:10:45.453: E/AndroidRuntime(22219): at dalvik.system.NativeStart.main(Native Method)
04-06 01:10:45.453: E/AndroidRuntime(22219): Caused by: android.database.sqlite.SQLiteException: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY: create table goals (_id primary key autoincrement, code text not null,days title text not null, bmi text not null);
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1817)
04-06 01:10:45.453: E/AndroidRuntime(22219): at com.b00348312.workout.DataBaseHelper$DatabaseHelper.onCreate(DataBaseHelper.java:59)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106)
04-06 01:10:45.453: E/AndroidRuntime(22219): at com.b00348312.workout.DataBaseHelper.open(DataBaseHelper.java:78)
04-06 01:10:45.453: E/AndroidRuntime(22219): at com.b00348312.workout.WorkoutProgress.onCreate(WorkoutProgress.java:21)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
04-06 01:10:45.453: E/AndroidRuntime(22219): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
04-06 01:10:45.453: E/AndroidRuntime(22219): ... 11 more
+1. Ich wünschte wirklich, dass neue Programmierer lernen würden, tatsächlich ** Fehlermeldungen zu lesen, anstatt nur "Mein Code funktioniert nicht. Hier ist die Fehlermeldung. Was ist los?" Dieser ist wirklich klar. –
@ Ken weiß, sorry, aber ich bin noch nicht in Logcat versiert. Ich habe es nur wirklich benutzt und ich war mir nicht sicher, auf welche Fehler ich achten sollte. jetzt nach der Umsetzung dieser Änderungen habe ich noch ein Problem, aber es sagt, dass es keine Spalte gibt, wenn ich es klar definiert habe / –