Question

Mon application garde forceclosing lorsque je tente de voir la classe qui tient mon porte-base de données. Je reçois une erreur sur la méthode onCreate () de ma base de données. J'ai une application qui utilise cette même base de données writin à peu près de la même façon la seule différence est que je suis en train de cliquer sur une option de menu au lieu d'un bouton normal, je ne sais pas si cela aura une incidence sur le problème de toute façon. Si quelqu'un pouvait me dire ce qui est mal ce serait bien. je vous remercie.

LOG ERREUR DE MISE À JOUR 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 MÉTHODE DANS LA CLASSE DE BASE DE DONNÉES

@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);");


    }

VIEWER CLASSE

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);
}

 }
Était-ce utile?

La solution

Essayez ceci:

1) supprimer "IS"

2) enlever ';' à la fin

Autres conseils

De une documentation SQLite:

Un ensemble de contraintes SQL pour chaque table. SQLite supporte UNIQUE, NOT NULL, les contraintes CHECK et FOREIGN KEY.

Prenez la 'EST' partie 'IS NOT NULL' lire 'TEXT NOT NULL'

La question est au tableau Créer une requête ..

Supprimer "EST" .. c'est ce que Logcat dit aussi

Faites une chose .. Utilisez Firefox avec SQLite Manager .. Essayez vos requêtes SQLite là-bas à la réception de telles erreurs ..

Pour votre information: http://code.google.com/p/sqlite-manager/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top