Вопрос

Мое приложение сохраняет корпус, когда я пытаюсь просмотреть класс, который удерживает владелец базы данных. Я получаю ошибку на методе OnCreate () моей базы данных. У меня есть одно приложение, которое использует то же самое, что иначе в базе данных практически так же, как единственное отличие состоит в том, что я пытаюсь нажать на опцию меню вместо регулярной кнопки, я не знаю, будет ли это повлиять на проблему в любом случае. Если бы кто -то мог сказать мне, что случилось, это было бы неплохо. благодарю вас.

Ошибка журнала CAT обновлена

11-28 22:06:01.951: E/AndroidRuntime(19544): FATAL EXCEPTION: main
11-28 22:06:01.951: E/AndroidRuntime(19544): java.lang.RuntimeException: Unable to start activity ComponentInfo{http.www.hotapp.com.timeandlocation/http.www.hotapp.com.timeandlocation.db.DatabaseViewer}: android.database.sqlite.SQLiteException: near "IS": syntax error: CREATE TABLE dbtable (_id INTEGER PRIMARY KEY AUTOINCREMENT, latitude TEXT IS NOT NULL, longitude TEXT IS NOT NULL, time TEXT IS NOT NULL, date TEXT IS NOT NULL);
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.os.Looper.loop(Looper.java:123)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.ActivityThread.main(ActivityThread.java:4627)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at java.lang.reflect.Method.invokeNative(Native Method)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at java.lang.reflect.Method.invoke(Method.java:521)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at dalvik.system.NativeStart.main(Native Method)
11-28 22:06:01.951: E/AndroidRuntime(19544): Caused by: android.database.sqlite.SQLiteException: near "IS": syntax error: CREATE TABLE dbtable (_id INTEGER PRIMARY KEY AUTOINCREMENT, latitude TEXT IS NOT NULL, longitude TEXT IS NOT NULL, time TEXT IS NOT NULL, date TEXT IS NOT NULL);
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1727)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at http.www.hotapp.com.timeandlocation.db.Database$DatabaseHelper.onCreate(Database.java:35)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at http.www.hotapp.com.timeandlocation.db.Database.open(Database.java:63)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at http.www.hotapp.com.timeandlocation.db.DatabaseViewer.onCreate(DatabaseViewer.java:26)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-28 22:06:01.951: E/AndroidRuntime(19544):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

Метод Oncreate внутри класса базы данных

@Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(" CREATE TABLE " + DATABASE_TABLE + " (" +
        KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
        KEY_LATITUDE + " TEXT IS NOT NULL, " +
        KEY_LONGITUDE + " TEXT IS NOT NULL, " +
        KEY_TIME + " TEXT IS NOT NULL, " +
        KEY_DATE + " TEXT IS NOT NULL);");


    }

Класс зрителей

public class DatabaseViewer extends Activity{

private TextView dbla;
private TextView dblo;
private TextView dbti;
private TextView dbda;

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.database);


    dbln = (TextView) findViewById(R.id.dblo);
    dbti = (TextView) findViewById(R.id.dbti);
    dbda = (TextView) findViewById(R.id.dbda);

    dbla = (TextView) findViewById(R.id.dbla);
    Database info = new Database(this);
    info.open();
    String data = info.latData();
    info.close();
    dblt.setText(data);
}

 }
Это было полезно?

Решение

Попробуй это:

1) Удалить "IS"

2) Удалить ';' в конце

Другие советы

Из Некоторая документация SQLite:

Набор ограничений SQL для каждой таблицы. SQLite поддерживает уникальные, а не нулевые ограничения, чек и внешний ключ.

Уберите «IS« часть », не нулевой, чтобы прочитать« текст, а не нулевой »

Проблема с таблицей создать запрос ..

Удалить "есть" .. вот что также говорит LogCat

Сделайте одну вещь .. Используйте Firefox с SQLite Manager .. Попробуйте свои запросы SQLite там при получении таких ошибок.

К вашему сведению: http://code.google.com/p/sqlite-manager/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top