2016-07-10 92 views
2

我試圖獲得與SugarORM一起工作的Android項目。但是,我遇到了以下錯誤:SugarORM錯誤或缺少數據庫

Caused by: android.database.sqlite.SQLiteException: no such table: DOCUMENT (code 1): , while compiling: INSERT OR REPLACE INTO DOCUMENT(ID,CREATED) VALUES (?,?) ################################################################# Error Code : 1 (SQLITE_ERROR) Caused By : SQL(query) error or missing database. (no such table: DOCUMENT (code 1): , while compiling: INSERT OR REPLACE INTO DOCUMENT(ID,CREATED) VALUES (?,?)) #################################################################

在我AndroidManifest我已經在我的應用程序中定義的android:name="com.orm.SugarApp" - 標籤,其中包括

<meta-data android:name="DATABASE" android:value="idea.db" /> 
<meta-data android:name="VERSION" android:value="1" /> 

也可以作爲子標籤。我已刪除

<meta-data android:name="QUERY_LOG" android:value="true" /> 
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" /> 

example,因爲他們不改變任何東西(and others had success in removing them)。我試圖首先查詢數據庫(使用findById)來「強制創建表」,如this post中所述。此外,我嘗試做類似

SugarDb sugarDb = new SugarDb(getApplicationContext()); new 
File(sugarDb.getDB().getPath()) 

如所述here。但這也運行在一個錯誤。此外,我已經禁用InstantRun功能,如在幾篇帖子和這裏(Sugar ORM No such table exception)中所述。

任何人都可以指出我正確的方向如何擺脫「錯誤或缺失的數據庫」 - 錯誤?

回答

0

你確定<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" />不會改變什麼嗎?您的鏈接支持,似乎沒有去正確的地方。無論如何,請遵循示例,直到問題得到解決,然後擔心可以修剪掉什麼!

你不應該看數據庫文件,不太確定爲什麼包括在內。

您的Document類是否擴展SugarRecord?沒有這個,表格將不會被創建。

一般來說,我認爲您應該嘗試再次從頭開始運行「入門」,而不要在途中對代碼進行任何修改。

0

我有同樣的問題,在我的情況下,事實證明,糖orm版本1.4有問題。只需更新gradle這個依賴於compile 'com.github.satyan:sugar:1.5'這解決了我的問題

+0

也有同樣的問題1.5 – gurehbgui

+0

嘗試增加版本1然後重新編譯 –

0

如果您使用的ProGuard必須編輯proguard-rules.pro

添加此行結束。 我的SugarRecords(模型)模型文件夾。

-keep class com.username.appname.models.** { *; } 

而且Android Studio中禁用即時運行功能。 我寫了一個SugarORM安裝教程here

相關問題