Boa Tarde Galera,
Tudo tranquilo ???
Estou com um pequeno problema que acredito eu ser uma coisa "boba" mas infelizmente não consegui resolver mesmo realizando várias consultas no google.
Tenho minhas classes Repositorys que tem a finalidade de me auxiliar nas operações de cadastro e recuperação de dados no BD que está embarcado na minha app.
O problema é o seguinte, quando eu chamo qualquer método do meu repositorio com o trecho de código:
EstadoRepository repository = new EstadoRepository(this);
List<Estado> estados = repository.getEstados();
repository.fechar();
E no meu método getEstados() eu tenho:
public List<Estado> getEstados() {
cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
List<Estado> estados = new ArrayList<Estado>();
while (cursor.moveToNext()) {
Estado item = new Estado();
item.setId(cursor.getInt(0));
item.setUf(cursor.getString(1));
item.setName(cursor.getString(2).toUpperCase());
estados.add(item);
}
cursor.close();
return estados;
}
E a exceção que é levantada é a seguinte:
12-05 13:01:00.119: E/Database(26737): close() was never explicitly called on database '/data/data/com.aorta.maisvolkswagen/databases/mvw.sqlite'
12-05 13:01:00.119: E/Database(26737): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
12-05 13:01:00.119: E/Database(26737): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1847)
12-05 13:01:00.119: E/Database(26737): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
12-05 13:01:00.119: E/Database(26737): at com.aorta.maisvolkswagen.helper.DatabaseHelper.checkDatabase(DatabaseHelper.java:37)
12-05 13:01:00.119: E/Database(26737): at com.aorta.maisvolkswagen.helper.DatabaseHelper.createDatabase(DatabaseHelper.java:47)
12-05 13:01:00.119: E/Database(26737): at com.aorta.maisvolkswagen.helper.DatabaseHelper.getDatabase(DatabaseHelper.java:95)
12-05 13:01:00.119: E/Database(26737): at com.aorta.maisvolkswagen.api.to.CarroRepository.<init>(CarroRepository.java:22)
12-05 13:01:00.119: E/Database(26737): at com.aorta.maisvolkswagen.ui.Home.onCreate(Home.java:103)
12-05 13:01:00.119: E/Database(26737): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-05 13:01:00.119: E/Database(26737): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
12-05 13:01:00.119: E/Database(26737): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
12-05 13:01:00.119: E/Database(26737): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-05 13:01:00.119: E/Database(26737): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-05 13:01:00.119: E/Database(26737): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 13:01:00.119: E/Database(26737): at android.os.Looper.loop(Looper.java:123)
12-05 13:01:00.119: E/Database(26737): at android.app.ActivityThread.main(ActivityThread.java:3729)
12-05 13:01:00.119: E/Database(26737): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 13:01:00.119: E/Database(26737): at java.lang.reflect.Method.invoke(Method.java:507)
12-05 13:01:00.119: E/Database(26737): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
12-05 13:01:00.119: E/Database(26737): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:632)
12-05 13:01:00.119: E/Database(26737): at dalvik.system.NativeStart.main(Native Method)
12-05 13:01:00.139: E/Database(26737): close() was never explicitly called on database '/data/data/com.aorta.maisvolkswagen/databases/mvw.sqlite'
12-05 13:01:00.139: E/Database(26737): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
12-05 13:01:00.139: E/Database(26737): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1847)
12-05 13:01:00.139: E/Database(26737): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
12-05 13:01:00.139: E/Database(26737): at com.aorta.maisvolkswagen.helper.DatabaseHelper.checkDatabase(DatabaseHelper.java:37)
12-05 13:01:00.139: E/Database(26737): at com.aorta.maisvolkswagen.helper.DatabaseHelper.createDatabase(DatabaseHelper.java:47)
12-05 13:01:00.139: E/Database(26737): at com.aorta.maisvolkswagen.helper.DatabaseHelper.getDatabase(DatabaseHelper.java:95)
12-05 13:01:00.139: E/Database(26737): at com.aorta.maisvolkswagen.api.to.EstadoRepository.<init>(EstadoRepository.java:19)
12-05 13:01:00.139: E/Database(26737): at com.aorta.maisvolkswagen.ui.ConcessionariasPorEstado.onCreate(ConcessionariasPorEstado.java:35)
12-05 13:01:00.139: E/Database(26737): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-05 13:01:00.139: E/Database(26737): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
12-05 13:01:00.139: E/Database(26737): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
12-05 13:01:00.139: E/Database(26737): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-05 13:01:00.139: E/Database(26737): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-05 13:01:00.139: E/Database(26737): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 13:01:00.139: E/Database(26737): at android.os.Looper.loop(Looper.java:123)
12-05 13:01:00.139: E/Database(26737): at android.app.ActivityThread.main(ActivityThread.java:3729)
12-05 13:01:00.139: E/Database(26737): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 13:01:00.139: E/Database(26737): at java.lang.reflect.Method.invoke(Method.java:507)
12-05 13:01:00.139: E/Database(26737): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
12-05 13:01:00.139: E/Database(26737): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:632)
12-05 13:01:00.139: E/Database(26737): at dalvik.system.NativeStart.main(Native Method)
Desde já agradeço pela ajuda de todos.
--






0 comentários:
Postar um comentário