2012-09-25 113 views
0

時當我編譯應用這些錯誤顯示:logcat的錯誤編譯應用程序

sqlite returned: error code = 1, msg = table mensagens already exists 
    Failure 1 (table mensagens already exists) on 0x240328 when preparing 'create table mensagens(mensagemsalva varchar(250),mensagemenviada varchar(250))'. 
    sqlite returned: error code = 1, msg = table contatos already exists 
    Failure 1 (table contatos already exists) on 0x240328 when preparing 'create table contatos(nome varchar(50),telefone varchar(20))'. 

我Main.java有這個代碼是爲了創建數據庫及其表:

onCreate(..){ 
    ... 
    db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null); 
    ... 
    VerificaDados(); 
    } 

    private void VerificaDados() { 
    // TODO Auto-generated method stub 

    try { 
     //cria uma TABLE de nome MENSAGENS 
     db.execSQL("create table mensagens(mensagemsalva varchar(250),mensagemenviada varchar(250))"); 
     //ShowMessage("Banco","Criou a tabela de mensagens"); 
    } 
    catch (Exception e) { 

     } 
    try{ 
     //cria uma TABLE de nome CONTATOS 
     db.execSQL("create table contatos(nome varchar(50),telefone varchar(20))"); 
     //ShowMessage("Banco","Criou a tabela de contatos"); 
    }catch (Exception a){ 

    } 

} 

idk它可能是因爲我只是運行應用程序和BAM,LogCat中的錯誤。

+0

這些都不是編譯器錯誤,但只要你的應用程序啓動存在的錯誤。你有沒有讀過錯誤信息?您正在嘗試創建已經存在的表。 – Ridcully

+0

(我認爲這是編譯錯誤,對不起XX)嗯,我知道他們存在,但如果你看到他們是「嘗試」和「趕上」,順便說一句,我一直在使用這種方式,沒有像這樣的問題發生之前 –

+0

try-catch捕獲異常,記錄的錯誤不是例外,而是merry的一些輸出。 – Ridcully

回答

1

看看SQLiteOpenHelper API Docs。

該類負責打開數據庫(如果存在),如果不存在則創建 ,並根據需要升級它。

您應該嘗試區分onCreate()onUpdate()

+0

是的,我知道,但我的應用程序沒有也不需要它,因爲它的應用程序只適用於我的工作中的人(約15人),但不會出現這種情況,事情是我有相同的代碼之前,它的工作一樣好,但現在不知道爲什麼 –

+0

好,但應用程序崩潰了,或者你只是擔心,因爲日誌文件中的SQLite錯誤消息? – Ridcully

+0

即時通訊擔心,因爲當在日誌中打開應用程序錯誤消息,並在應用程序後,當我嘗試更改數據庫中的聯繫人值。 –

0

只是評論(//)VerificaDados();,因爲表已經創建。

onCreate(..){ 
    ... 
db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null); 
    ... 
    //VerificaDados(); 
    }