2016-06-24 3 views
2

Ich benutze greenDAO und ich habe erfolgreich alle notwendigen Klassen und Entitäten generiert und ich kann sehen, dass meine Tabelle erstellt wurde, aber nach dem Setzen von Breakpoints auf die zu ersetzende Zeile, bekomme ich einen Fehler mit dem Hinweis "Keine solche Tabelle existiert Fehler" .So lösen Sie greenDAO "Keine solche Tabelle existiert Fehler", wenn Sie eine InsertOrReplace tun?

try { 
    appTimeUsageDao.insertOrReplace(appStats); 
//} catch (DaoException e) { 
} catch (Exception e) { 
    Log.e("Error", "Some exception occurred", e); 
    Log.e("APP_TAG", Log.getStackTraceString(e)); 
} 

Antwort

0

Haben Sie das getan?

mSQLiteDatabase = mOpenHelper.getWritableDatabase(); 
mDaoMaster = new DaoMaster(mSQLiteDatabase); 
mDaoSession = mDaoMaster.newSession(); 
appTimeUsageDao = mDaoSession.getAppTimeUsageDaoDao(); 
+0

'SQLiteOpenHelper Helfer = new DaoMaster.DevOpenHelper (getApplicationContext(), Globals.DatabaseName, null); DaoMaster-Master = neuer DaoMaster (helper.getWritableDatabase()); daoSession = master.newSession(); appTimeUsageDao = DeviceInsightApp.getSession (dies ist wahr) .getAppTimeUsageDao(); 'Das ist, was ich in meinem Code habe und ich bin mir nicht sicher, warum ich den Fehler bekomme – Zidane

1

Ich folgte this Guide und hatte das gleiche Problem. Ich hatte den Datenbanknamen aus irgendeinem Grund falsch. Überprüfen Sie, ob sie gleich in der AndroidManifest.xml Datei mit dem Namen sind:

<meta-data 
     android:name="DATABASE" 
     android:value="notes.db"/> 

Und in Ihrer Klasse, die erweiterte Anwendung:

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes.db"); 
0

Für mich ist diese Frage zu dieser allowBackup Flagge im Manifest verwendet war.

Diese Funktionalität wurde von api hinzugefügt 23 ab und die Wirkung davon ist die Gerätedatenbank wiederherstellen, auch wenn die App deinstalliert wurde, also, wenn Sie versuchen, die Datenbank zu löschen, indem Sie es nicht funktionieren deinstallieren wie Android es wiederherstellt, ähnlich wie iCloud funktioniert.

Ich könnte irgendwo in der Dokumentation fehlen, die diesen Fehler erklärt, aber es ist mir nicht klar, dass dies ein Problem in GreenDao 3 sein könnte. Darüber hinaus werden viele Benutzer eine Test-Entität einrichten und die Handhabung des Upgrades nicht in Betracht ziehen Pfad, da sie keine Lust haben, die Testtabelle beizubehalten, was dazu führt, dass das Szenario einer einzelnen Tabelle wiederhergestellt und die neuen Tabellen nicht erstellt werden.

Also im Wesentlichen, wenn Sie nur testen, setzen Sie die Flagge auf falsch andernfalls behandeln den Upgrade-Fluss. (Das Flag standardmäßig true!)

https://developer.android.com/guide/topics/data/autobackup.html

Verwandte Themen