Failed to open the database. closing it

11 respostas
E
12-02 13:23:14.980: E/SqliteDatabaseCpp(2126): sqlite3_open_v2("/data/data/com.br.teste.GestaoFV.Activity/databases/GestaoFV.db", &handle, 6, NULL) failed

12-02 13:23:14.980: E/SQLiteDatabase(2126): Failed to open the database. closing it.

12-02 13:23:14.980: E/SQLiteDatabase(2126): android.database.sqlite.SQLiteDatabaseLockedException: database is locked

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:983)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:956)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:932)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at com.br.ultra.GestaoFV.Cadastrar.Banco.Banco.cadastraBanco(Banco.java:102)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at com.br.ultra.GestaoFV.Activity.UltraGestaoFVActivity.verificaBanco(GestaoFVActivity.java:375)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at com.br.ultra.GestaoFV.Activity.UltraGestaoFVActivity.onCreate(GestaoFVActivity.java:109)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1715)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.app.ActivityThread.access$1500(ActivityThread.java:122)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.os.Handler.dispatchMessage(Handler.java:99)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.os.Looper.loop(Looper.java:132)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at android.app.ActivityThread.main(ActivityThread.java:4028)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at java.lang.reflect.Method.invokeNative(Native Method)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at java.lang.reflect.Method.invoke(Method.java:491)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)

12-02 13:23:14.980: E/SQLiteDatabase(2126):     at dalvik.system.NativeStart.main(Native Method)

Pessoal estou enfrentando esse erro, alguém ai pode me ajuda…

Fico no guardo…

11 Respostas

Ruttmann

Dando uma pesquisada descobri que esse erro se deve ao fato de que o SQLite trabalha por padrão num modo “thread-safe”, ou seja, se seu app está manipulando uma tabela e ocorre outra tentativa de acesso a tabelas, esse erro é lançado.

Entendo pouco de Android, mas vou mandar uns links que podem te ajudar:

https://groups.google.com/forum/#!topic/android-developers/INjL97-I9tk

:wink:

E

Vc sabe se tem como mata essa execução… pq estou com db.close();

Mas não esta funcionando

A

Qual é a linha 102 do Banco.java?

E

dbGestao = context.openOrCreateDatabase(NOME_BANCO, Context.MODE_PRIVATE, null);

A

Esse db já não está aberto?

E

já tentei coloca um

try{

db.close();

}

antes de abri a conexão, mas mesmo assim não funciona…

A

Está usando algum tutorial ou livro como base?
Você tem que saber se já abriu ou não, e, também se está aberto quando fechar.
Ou posta o código ou faz uma verificação da sua lógica.

E

O duro que já tentei faze tudo isso que vc falo, e até agora nao achei o pq… :-/

A

Posta o código.

E

Cara he muito grande o projeto…

Mas assim

ele ta inserindo n produtos e no meio da incercao eu cancelo a execucao… e quando tendo abri uma nova tela ele da esse prego… mas no onclick do cancel eu do um db.close();

A

Aí fica difícil.

Criado 3 de dezembro de 2013
Ultima resposta 3 de dez. de 2013
Respostas 11
Participantes 3