Android Studio 3.0 Fehlermeldung <pragma value> expected, got 'ON'

  • Antworten:1
Anja Aßmann
  • Forum-Beiträge: 1

30.10.2017, 10:12:03 via Website

Letzte Woche wurde Android Studio auf Version 3.0 aktualisiert. Seitdem unterstreicht Android Studio mir das Wort ON in der Methode onConfigure rot und gibt mir folgende Fehlermeldung: < pragma value > expected, got 'ON'!

Was muss ich tun, damit ich diesen Error in meiner Klasse weg bekomme?

public class CareDbHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "care.db";

    private static final int DATABASE_VERSION = 1;

    CareDbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //Erstellen der Tabellen
        CareTable.onCreate(db);
        ...
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //Upgraden der Tabellen
        CareTable.onUpgrade(db, oldVersion, newVersion);
        ...
    }

    @Override
    public void onConfigure(SQLiteDatabase db) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
            db.execSQL("PRAGMA foreign_keys = ON;");
        } else {
            db.setForeignKeyConstraintsEnabled(true);
        }
    }

}

— geändert am 30.10.2017, 10:13:37

Antworten
swa00
  • Forum-Beiträge: 3.704

30.10.2017, 10:24:37 via Website

Hallo Anja,

willkommen im Forum.

Du benutzt in deinem Query zwei Compiler - Schlüsselworte. (PRAGMA / ON )

Grundsätzlich solltest du dir angewöhnen , Queries nicht fix zu setzen , sondern einen Parameter verwenden.
(Also NICHT hardcoded)

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1)
{
String query = String.format ("PRAGMA foreign_keys = %s","ON");
db.execSQL(query);
}

— geändert am 30.10.2017, 10:30:17

Liebe Grüße - Stefan
[ App - Entwicklung ]

Anja Aßmann

Antworten