такой код ошибки столбца не работает при использовании 4.4 Kitkat

-6

Я создал приложение на мини-андроиде 5. Но я хочу запустить его на 4.4 android. Поэтому я скопировал файлы с первого проекта на второй и исправил такие вещи, как AndroidManifest. Когда я компилирую первую версию evrythink, все нормально, но в версии, которая должна работать с android 4.4, я получаю SQLite exeption "нет такого столбца". Код:

   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:

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) 

спросил(а) 2016-11-29T22:54:00+03:00 3 года, 8 месяцев назад
0
69

Ничего общего с Киткатом. Вам просто не хватает запятой , между спецификациями столбцов в MobilnaPytajkaDatabase#onCreate(). Добавьте их туда и удалите приложение, чтобы удалить старую базу данных и создать новую.

ответил(а) 2016-11-30T09:14:00+03:00 3 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема