2012-09-25 89 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(); 
    }