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

R

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