Bom dia galera,
Estou começar a estudar a parte de banco de dados (SqlLite) no Android e estou tendo um problema ao tentar criar uma tabela no mesmo, gostaria de pedir a ajuda dos colegas para tentar entender esse erro.
06-11 11:09:39.459 2413-5589/? E/LocSvc_libulp: E/int ulp_brain_transition_all_providers(), no QUIPC/GNSS transition logic run due to both engines are OFF
06-11 11:09:39.462 2413-4530/? E/LocSvc_LBSApiV02: E/virtual int lbs_core::LBSApiV02::injectCoarsePosition(const CoarsePositionInfo &):353]: Error : st = 3, ind.status = 0
06-11 11:09:39.463 2413-4555/? E/QMI_FW: QCCI qmi_cci_xport_recv: txn not found. svc_id: 16
06-11 11:09:39.752 25498-25498/? E/ExtendedServiceUtils: Failed to load libdashplayer.so : dlopen failed: library "libdashplayer.so" not found
06-11 11:09:40.297 5296-5301/? E/ANDR-PERF-MPCTL: Invalid profile no. 0, total profiles 0 only
06-11 11:09:40.378 2413-21745/? E/ActivityManager: Sending non-protected broadcast
com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg
com.motorola.motgeofencesvc
java.lang.Throwable
at
com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at
com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at
com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:40.592 19430-26223/? E/Publisher: ProcessDatabaseInternal start
06-11 11:09:42.569 2413-4294/? E/BatteryStatsService: no controller energy info supplied
06-11 11:09:42.569 2413-4294/? E/BatteryStatsService: no controller energy info supplied
06-11 11:09:42.583 2413-4294/? E/KernelUidCpuTimeReader: Failed to read uid_cputime: /proc/uid_cputime/show_uid_stat (No such file or directory)
06-11 11:09:42.593 2413-4294/? E/BatteryStatsService: modem info is invalid: ModemActivityInfo{
mTimestamp=3099243659 mSleepTimeMs=-1615062203 mIdleTimeMs=1615357965 mTxTimeMs[]=[1020, 1, 10360, 3761, 841] mRxTimeMs=43655 mEnergyUsed=0}
06-11 11:09:45.118 25548-25548/? E/ExtendedServiceUtils: Failed to load libdashplayer.so : dlopen failed: library "libdashplayer.so" not found
06-11 11:09:45.342 25553-25553/? E/ExtendedServiceUtils: Failed to load libdashplayer.so : dlopen failed: library "libdashplayer.so" not found
06-11 11:09:46.319 25578-25578/? E/ExtendedServiceUtils: Failed to load libdashplayer.so : dlopen failed: library
"libdashplayer.so" not found
06-11 11:09:46.453 5296-5301/? E/ANDR-PERF-MPCTL: Invalid profile no. 0, total profiles 0 only
06-11 11:09:46.454 564-674/? E/ThermalEngine: override_notify: SS mode 1 overrid
06-11 11:09:46.481 2413-10031/? E/ActivityManager: Sending non-protected broadcast
com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg
com.motorola.motgeofencesvc
java.lang.Throwable
at
com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at
com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at
com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:46.609 2413-10030/? E/ActivityManager: Sending non-protected broadcast
com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg
com.motorola.motgeofencesvc
java.lang.Throwable
at
com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at
com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at
com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:46.815 25593-25593/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: bdsystems.com.br.lojavirtual, PID: 25593
java.lang.RuntimeException: Unable to start activity
ComponentInfo{bdsystems.com.br.lojavirtual/bdsystems.com.br.lojavirtual.LoginActivity}:
java.lang.IllegalStateException: getDatabase called recursively
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
Caused by: java.lang.IllegalStateException: getDatabase called recursively
at
android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:203)
at
android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
at Repository.LoginRepository.popularBD(LoginRepository.java:65)
at Repository.LoginRepository.onCreate(LoginRepository.java:45)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
at Repository.LoginRepository.popularBD(LoginRepository.java:65)
at BO.LoginBo.<init>(LoginBo.java:23)
at bdsystems.com.br.lojavirtual.LoginActivity.onCreate(LoginActivity.java:40)
at android.app.Activity.performCreate(Activity.java:6672)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
06-11 11:09:46.834 2413-5457/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:47.150 2413-2748/? E/BatteryStatsService: no controller energy info supplied
06-11 11:09:47.150 2413-2748/? E/BatteryStatsService: no controller energy info supplied
06-11 11:09:47.168 2413-2748/? E/BatteryStatsService: power: Missing API
06-11 11:09:47.171 2413-2748/? E/KernelUidCpuTimeReader: Failed to read uid_cputime: /proc/uid_cputime/show_uid_stat (No such file or directory)
06-11 11:09:47.184 2413-2748/? E/BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=3099248240 mSleepTimeMs=-1615062203 mIdleTimeMs=1615357965 mTxTimeMs[]=[1020, 1, 10360, 3761, 841] mRxTimeMs=43655 mEnergyUsed=0}
06-11 11:09:47.186 2413-2725/? E/KernelUidCpuTimeReader: Failed to read uid_cputime: /proc/uid_cputime/show_uid_stat (No such file or directory)
06-11 11:09:47.442 2413-7855/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:49.456 564-674/? E/ThermalEngine: override_notify: SS mode 0 override
06-11 11:09:51.409 2413-4578/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:51.602 5296-5301/? E/ANDR-PERF-MPCTL: Invalid profile no. 0, total profiles 0 only
06-11 11:09:51.742 23679-23679/? E/MotoDisplay: Exception getting package info! e=[com.android.nfc]
06-11 11:09:51.743 23679-23679/? E/MotoDisplay: Exception getting package info! e=[com.android.calculator2]
06-11 11:09:51.745 23679-23679/? E/MotoDisplay: Exception getting package info! e=[com.motorola.tools.batterytracer]
06-11 11:09:52.117 19430-19578/? E/Publisher: ProcessDatabaseInternal start
06-11 11:09:52.173 2413-9799/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:52.183 2413-10030/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:52.215 2413-5405/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:52.219 2413-14320/? E/ActivityManager: Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 4541:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18226)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18826)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2906)
at android.os.Binder.execTransact(Binder.java:565)
06-11 11:09:52.365 21436-21445/? E/DataBuffer: Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@75b0810)
06-11 11:09:52.367 21436-21445/? E/DataBuffer: Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@a977f09)
Segue minha classe de regra de negócio.
public class LoginBo {
private LoginRepository loginRepository;
public LoginBo(Activity activity) {
loginRepository = new LoginRepository(activity);
loginRepository.popularBD();
}
public boolean validarCamposLogin(LoginValidation validation) {
boolean resultado = true;
if(validation.getLogin() == null || "".equals(validation.getLogin())) {
validation.getEdtLogin().setError("Campo obrigatório");
// Toast.makeText(getApplicationContext(), "O campo login é obrigatório de ser preenchido", Toast.LENGTH_SHORT).show();
resultado = false;
}
else if(validation.getLogin().length() < 3) {
validation.getEdtLogin().setError("O campo deve ter pelo menos 3 caracteres");
}
if(validation.getSenha() == null || "".equals(validation.getSenha())){
validation.getEdtSenha().setError("Campo obrigatório");
// Toast.makeText(getApplicationContext(), "O campo senha é obrigatório de ser preenchido", Toast.LENGTH_SHORT).show();
resultado = false;
}
if(resultado) {
if(!validation.getLogin().equals("admin") || !validation.getSenha().equals("admin")) {
Util.showMsgToast(validation.getActivity(), "Login/Senha inválidos!");
resultado = false;
}
else {
SharedPreferences.Editor editor = validation.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE).edit();
editor.putString("login", validation.getLogin());
editor.putString("senha", validation.getSenha());
editor.commit();
}
}
return resultado;
}
Segue minha classe responsável por criar a tabela.
public class LoginRepository extends SQLiteOpenHelper {
/**
*
* @param context - é a propria activity
// * @param name
// * @param factory - fabrica de conexões do meu cursor
// * @param version - versão do meu banco de dados
*/
//public LoginRepository(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
public LoginRepository(Context context) {
super(context, Constantes.BD_NOME, null, Constantes.BD_VERSAO);
}
/**
* Cria, atualiza e carrega os dados das tabelas na hora que a classe é chamada
* Tem que se tomar cuidado, pois se você não souber trabalhar corretamente com esse metodo, ele pode recriar a tabela.
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
StringBuilder query = new StringBuilder();
query.append("CREATE TABLE LOGIN ( ");
query.append(" ID INTEGER PRIMARY KEY AUTOINCREMENT,");
query.append(" USUARIO TEXT(20) NOT NULL,");
query.append(" SENHA TEXT(20) NOT NULL)");
db.execSQL(query.toString());
popularBD();
}
/**
* Atualiza as tabelas de acordo com a informação vinda do campo version do seu construtor, se for uma informação diferente,
* ele entenderá que houve atualização e atualização os dados
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void popularBD() {
StringBuilder query = new StringBuilder();
query.append("INSERT INTO LOGIN(USUARIO, SENHA) VALUES(?, ?)");
SQLiteDatabase db = this.getWritableDatabase(); // metodo utilizado para escrever na base de dados
db.execSQL(query.toString(), new String[] {"admin", "admin"}); // criando um vetor de strings para utiliza-lo ao executar a query abaixo, pois é exigencia do metodo.
}
}
Desde já agradeço por qualquer ajuda.