0

I am developing an android app for a school project, and when Eclipse calls the code to consult the database throws this errors:

     D/dalvikvm(2011): Not late-enabling CheckJNI (already on)
     I/SQLite(2011): Inicio de aplicación SQLite
     I/SQLite(2011): Aplicación SQLite creada correctamente :)  
     I/Choreographer(2011): Skipped 61 frames!  The application may be doing too much work on its main thread.
     I/Choreographer(2011): Skipped 69 frames!  The application may be doing too much work on its main thread.
     D/gralloc_goldfish(2011): Emulator without GPU emulation detected.
     E/SQLiteLog(2011): (1) no such column: significado
     D/AndroidRuntime(2011): Shutting down VM
     W/dalvikvm(2011): threadid=1: thread exiting with uncaught exception (group=0xb1d5eb20)
     E/AndroidRuntime(2011): FATAL EXCEPTION: main
     E/AndroidRuntime(2011): Process: com.tutorial.pasanaku, PID: 2011
     E/AndroidRuntime(2011): android.database.sqlite.SQLiteException: no such column: significado (code 1): , while compiling: SELECT significado FROM mi_tabla WHERE palabra=casa
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
     E/AndroidRuntime(2011):    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
     E/AndroidRuntime(2011):    at com.tutorial.pasanaku.DataBaseHelper.consulta(DataBaseHelper.java:145)
     E/AndroidRuntime(2011):    at com.tutorial.pasanaku.AlfaActivity$1.onClick(AlfaActivity.java:52)
     E/AndroidRuntime(2011):    at android.view.View.performClick(View.java:4438)
     E/AndroidRuntime(2011):    at android.view.View$PerformClick.run(View.java:18422)
     E/AndroidRuntime(2011):    at android.os.Handler.handleCallback(Handler.java:733)
     E/AndroidRuntime(2011):    at android.os.Handler.dispatchMessage(Handler.java:95)
     E/AndroidRuntime(2011):    at android.os.Looper.loop(Looper.java:136)
     E/AndroidRuntime(2011):    at android.app.ActivityThread.main(ActivityThread.java:5017)
     E/AndroidRuntime(2011):    at java.lang.reflect.Method.invokeNative(Native Method)
     E/AndroidRuntime(2011):    at java.lang.reflect.Method.invoke(Method.java:515)
     E/AndroidRuntime(2011):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
     E/AndroidRuntime(2011):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
     E/AndroidRuntime(2011):    at dalvik.system.NativeStart.main(Native Method)
     I/Process(2011): Sending signal. PID: 2011 SIG: 9 

Here is the code that load an existing database. It is in "DataBaseHelper" class.

public class DataBaseHelper extends SQLiteOpenHelper{

//The Android's default system path of your application database.
private static String DB_PATH = "/data/data/com.tutorial.pasanaku/databases/";

private static String DB_NAME = "dbTest";

private SQLiteDatabase myDataBase; 

private final Context myContext;

/**
 * Constructor
 * Takes and keeps a reference of the passed context in order to access to the application assets and resources.
 * @param context
 */
public DataBaseHelper(Context context) {

    super(context, DB_NAME, null, 1);
    this.myContext = context;
}   

The "search" button's code

    button1.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
             //Intent intent = new Intent(AlfaActivity.this, Activity.class);
             //startActivity(intent);
              final String palabra;
              final String mostrar;
              palabra=editText1.getText().toString();
              mostrar=databasehelper.consulta(palabra);
              textview2.setText(mostrar);
          }

I think the problem is that I didn't place the database in the correct path. I placed it in the "assets" folder. Is it wrong?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129

1 Answers1

0

Normally you dont need define path for your database. Android creates the database under /data/data/com.yourappname/databases/databasename

If you need a tutorial this doc will help you

Also if you are using eclipse sqlitebrowser plugin will help you to see your database directly. (You will need permissions to write and read on real devices. And if you are using a real device this answer will help you to set the permissions)

Community
  • 1
  • 1
Warwicky
  • 281
  • 4
  • 9