Ich habe eine Anwendung auf min Android 5 erstellt. Aber ich möchte es bei 4,4 android ausführen. Also kopierte ich Dateien vom ersten Projekt in die zweite und korrigierte Dinge wie AndroidManifest. Wenn ich erste Version kompiliere funktioniert evrythink ok, aber auf Version, die mit Android 4.4 arbeiten sollte, bekomme ich SQLite Ausnahme "keine solche Spalte". Code:keine solche Spalte Fehlercode funktioniert nicht bei der Verwendung von 4.4 Kitkat
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_select, container, false);
helper = new MobilnaPytajkaDatabase(getContext());
db = helper.getWritableDatabase();
cursor = db.query("QUIZ_TABLE", new String[]{"_id", "QUESTION"},
"TYPE=0", null, null, null, null, null);
lista = (ListView) view.findViewById(R.id.listview);
if(cursor.moveToFirst()) {
try {
CursorAdapter ca = new SimpleCursorAdapter(getContext(),
R.layout.whitetextlayout1, cursor,
new String[]{"QUESTION"}, new int[]{R.id.text1},
0);
lista.setAdapter(ca);
lista.setOnItemClickListener(listener);
} catch (SQLiteException e) {
;
}
return view;
}
else
return inflater.inflate(R.layout.emptylist, container,false);
}
SQLite offen Hilfsklasse:
package com.nieruchalski.mobilnapytajkaforkitkat;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MobilnaPytajkaDatabase extends SQLiteOpenHelper {
public final static int DB_VERSION = 2;
public final static String DB_NAME = "QUIZ_DATA";
MobilnaPytajkaDatabase(Context context)
{
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE QUIZ_TABLE (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "QUESTION TEXT"
+ "ANSWER TEXT"
+ "TYPE INTEGER);");
}
}
Logcat:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.nieruchalski.mobilnapytajkaforkitkat, PID: 2450
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nieruchalski.mobilnapytajkaforkitkat/com.nieruchalski.mobilnapytajkaforkitkat.selectQuiz}: android.database.sqlite.SQLiteException: no such column: TYPE (code 1): , while compiling: SELECT _id, QUESTION FROM QUIZ_TABLE WHERE TYPE=0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2509)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569)
at android.app.ActivityThread.access$900(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5885)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
Caused by: android.database.sqlite.SQLiteException: no such column: TYPE (code 1): , while compiling: SELECT _id, QUESTION FROM QUIZ_TABLE WHERE TYPE=0
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:921)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:532)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:68)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1402)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1249)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1120)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1326)
at com.nieruchalski.mobilnapytajkaforkitkat.selectFragment.onCreateView(selectFragment.java:38)
at android.app.Fragment.performCreateView(Fragment.java:2238)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:977)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1152)
at android.app.BackStackRecord.run(BackStackRecord.java:793)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1539)
at android.app.FragmentController.execPendingActions(FragmentController.java:325)
at android.app.Activity.performStart(Activity.java:6278)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2472)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569)
at android.app.ActivityThread.access$900(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5885)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)