Autore Topic: Crash dopo tentata query SQLite  (Letto 1194 volte)

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Crash dopo tentata query SQLite
« il: 16 Dicembre 2012, 23:01:28 CET »
0
Salve a tutti!

Sto tentando di accedere ad un DB SQLite realizzato in precedenza con l'estensione di Firefox. Essa mi produce un file (il DB) chiamato miofile.db.sqlite
Lo importo in Eclipse nel mio progetto nella directory assets

Poi scrivo le due classi che mi gestiscono il DB Sqlite

DatabaseHelper
Codice (Java): [Seleziona]
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {
       
       
       
    //The Android's default system path of your application database.
    private static String DB_PATH = "/data/data/Erbe.cure/databases/";
     
    private static String DB_NAME = "Erbe.db.sqlite";
     
    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
     * @return
      */

    public DatabaseHelper(Context context) {
         
        super(context, DB_NAME, null, 7);
        this.myContext = context;
        }      
   
    /**
      * Creates a empty database on the system and rewrites it with your own database.
      */

    public void createDataBase() throws IOException{
     
    boolean dbExist = checkDataBase();
     
    if(dbExist){
    //do nothing - database already exist
    }else{
     
    //By calling this method and empty database will be created into the default system path
    //of your application so we are gonna be able to overwrite that database with our database.
    this.getReadableDatabase();
     
    try {
     
    copyDataBase();
     
    } catch (IOException e) {
     
    throw new Error("Error copying database");
     
    }
    }
     
    }
     
    /**
      * Check if the database already exist to avoid re-copying the file each time you open the application.
      * @return true if it exists, false if it doesn't
      */

    private boolean checkDataBase(){
     
    SQLiteDatabase checkDB = null;
     
    try{
    String myPath = DB_PATH + DB_NAME;
    checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
     
    }catch(SQLiteException e){
     
    //database does't exist yet.
     
    }
     
    if(checkDB != null){
     
    checkDB.close();
     
    }
     
    return checkDB != null ? true : false;
    }
     
    /**
      * Copies your database from your local assets-folder to the just created empty database in the
      * system folder, from where it can be accessed and handled.
      * This is done by transfering bytestream.
      * */

    private void copyDataBase() throws IOException{
     
    //Open your local db as the input stream
    InputStream myInput = myContext.getAssets().open(DB_NAME);
     
    // Path to the just created empty db
    String outFileName = DB_PATH + DB_NAME;
     
    //Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);
     
    //transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer))>0){
    myOutput.write(buffer, 0, length);
    }
     
    //Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();
     
    }
     
    public void openDataBase() throws SQLException{
     
    //Open the database
    String myPath = DB_PATH + DB_NAME;
    myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
     
    }
     
    @Override
    public synchronized void close() {
     
    if(myDataBase != null)
    myDataBase.close();
     
    super.close();
     
    }
     
    @Override
    public void onCreate(SQLiteDatabase db) {
     
    }
     
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
     
    }
     
    // Add your public helper methods to access and get content from the database.
    // You could return cursors by doing "return myDataBase.query(....)" so it'd be easy
    // to you to create adapters for your views.
     
}

DbAdapter
Codice (Java): [Seleziona]
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.provider.ContactsContract;

public class DbAdapter {

       
        @SuppressWarnings("unused")
        private static final String LOG_TAG = DbAdapter.class.getSimpleName();
       
        private Context context;
        private SQLiteDatabase database;
        private DatabaseHelper dbHelper;
       

//      Database fields
        private static final String DATABASE_TABLE = "Piante";
       
        public static final String KEY_ID = "ID";
        public static final String KEY_PIANTA = "Pianta";
        public static final String KEY_P_LATINA = "Pianta_Latina";
        public static final String KEY_FAMIGLIA = "Famiglia";
        public static final String KEY_DESCRIZIONE = "Descrizione";
        public static final String KEY_LUOGO = "Luogo";
        public static final String KEY_RICETTE = "Ricette";
        public static final String KEY_IMG = "Immagine";



       
       
        public DbAdapter(Context context) {
                this.context = context;
        }

        public DbAdapter open() throws SQLException {
               
                dbHelper = new DatabaseHelper(context);
                database = dbHelper.getWritableDatabase();
                return this;
        }

        public void close() {
               
                dbHelper.close();
               
        }
       
        //fetch all contacts
        public Cursor fetchPlant() {
               
                return database.query(false, DATABASE_TABLE, new String[] {KEY_PIANTA}, null, null, null, null, null, null);
        }
       

//fetch contacts filter by a string
public Cursor fetchPlantByFilter(String filter) {
               
                Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] {
                                KEY_PIANTA, KEY_P_LATINA, KEY_FAMIGLIA, KEY_DESCRIZIONE, KEY_LUOGO, KEY_RICETTE, KEY_IMG },
                                KEY_PIANTA + " like '%"+ filter + "%'", null, null, null, null, null);
       
                return mCursor;
               
        }
public Cursor fetchID() {
   
    return database.query(false, DATABASE_TABLE, new String[] {KEY_ID}, null, null, null, null, null, null);
}
}

Con la prima classe inoltre controllo se il db esiste (se non esiste lo crea), mentre se esiste  prende il db appena importato e lo copia nella directory /data/data/MIO_PACKAGE/databases/

Quando eseguo la query in quest'altra classe l'app mi crasha :-(

Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;

public class Erbe extends Activity {
       
        private DbAdapter dbHelper;
    private Cursor cursor;

        /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_erbe);
       
        //Manipolazione sul DB
        dbHelper = new DbAdapter(this);
        dbHelper.open();
       
        cursor = dbHelper.fetchPlant();
        dbHelper.close();

il problema è nella riga dove c'è:
cursor = dbHelper.fetchPlant();

Ecco il logcat
Codice (XML): [Seleziona]
12-16 22:42:32.214: I/Database(276): sqlite returned: error code = 1, msg = no such table: Piante
12-16 22:42:32.224: D/AndroidRuntime(276): Shutting down VM
12-16 22:42:32.224: W/dalvikvm(276): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
12-16 22:42:32.244: E/AndroidRuntime(276): FATAL EXCEPTION: main
12-16 22:42:32.244: E/AndroidRuntime(276): java.lang.RuntimeException: Unable to start activity ComponentInfo{Erbe.cure/Erbe.cure.ErbeecureActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{Erbe.cure/Erbe.cure.Erbe}: android.database.sqlite.SQLiteException: no such table: Piante: , while compiling: SELECT Pianta FROM Piante
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.os.Handler.dispatchMessage(Handler.java:99)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.os.Looper.loop(Looper.java:123)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.main(ActivityThread.java:4627)
12-16 22:42:32.244: E/AndroidRuntime(276):      at java.lang.reflect.Method.invokeNative(Native Method)
12-16 22:42:32.244: E/AndroidRuntime(276):      at java.lang.reflect.Method.invoke(Method.java:521)
12-16 22:42:32.244: E/AndroidRuntime(276):      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-16 22:42:32.244: E/AndroidRuntime(276):      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-16 22:42:32.244: E/AndroidRuntime(276):      at dalvik.system.NativeStart.main(Native Method)
12-16 22:42:32.244: E/AndroidRuntime(276): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{Erbe.cure/Erbe.cure.Erbe}: android.database.sqlite.SQLiteException: no such table: Piante: , while compiling: SELECT Pianta FROM Piante
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.widget.TabHost.setCurrentTab(TabHost.java:323)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.widget.TabHost.addTab(TabHost.java:213)
12-16 22:42:32.244: E/AndroidRuntime(276):      at Erbe.cure.ErbeecureActivity.onCreate(ErbeecureActivity.java:31)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-16 22:42:32.244: E/AndroidRuntime(276):      ... 11 more
12-16 22:42:32.244: E/AndroidRuntime(276): Caused by: android.database.sqlite.SQLiteException: no such table: Piante: , while compiling: SELECT Pianta FROM Piante
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1229)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
12-16 22:42:32.244: E/AndroidRuntime(276):      at Erbe.cure.DbAdapter.fetchPlant(DbAdapter.java:58)
12-16 22:42:32.244: E/AndroidRuntime(276):      at Erbe.cure.Erbe.onCreate(Erbe.java:30)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-16 22:42:32.244: E/AndroidRuntime(276):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-16 22:42:32.244: E/AndroidRuntime(276):      ... 20 more

Non so cosa fare. Non so dove sbaglio.
Sapete aiutarmi grazie



Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Crash dopo tentata query SQLite
« Risposta #1 il: 17 Dicembre 2012, 08:43:29 CET »
0
Il log è chiaro:
Codice (Java): [Seleziona]
Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{Erbe.cure/Erbe.cure.Erbe}: android.database.sqlite.SQLiteException: no such table: Piante: , while compiling: SELECT Pianta FROM Pianteno such table: Piante, non trova la tabella.

Io sospetto che non riesca proprio a trovarti l'intero database, riverifica il codice quando lo copi per accertarti che effettivamente faccia la copia e che effettivamente riesca ad aprirlo.

PS:  dopo aver eseguito copyDataBase(); prova a verificare nuovamente se il db gli risulta esistente.
« Ultima modifica: 17 Dicembre 2012, 08:48:01 CET da Sakazaki »

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #2 il: 17 Dicembre 2012, 18:02:30 CET »
0
Niente da fare...  :-(
L'app crasha anche con un secondo controllo del DB. Ho provato a mettere delle System.out.println("x"); e vedere cosa accadeva in console ma nulla....
Il codice dovrebbe essere giusto. Ho seguito passo passo una guida...
Non vedo perchè non dovrebbe funzionarmi.

Il logcat d'altronde me lo dice, che non trova la tabella, ma nn posso farci nulla.
Ho creato il DB e ho provato a lanciare comandi SQL e le interrogazioni funzionano... quindi il file funziona. Inoltre ho messo nel posto giusto il db (in assets) e poi l'ho copoiato nella directory esatta /data/data ecc...

Non so più cosa fare!  :-(
« Ultima modifica: 17 Dicembre 2012, 18:04:07 CET da pupi93 »

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
R: Crash dopo tentata query SQLite
« Risposta #3 il: 17 Dicembre 2012, 18:06:05 CET »
0
Uhm... Ma nel manifest che hai messo come nome del package?

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #4 il: 17 Dicembre 2012, 18:10:35 CET »
0
Erbe.cure

E' esatto...uguale a quello del percorso dove spostare il DB.

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
R: Crash dopo tentata query SQLite
« Risposta #5 il: 17 Dicembre 2012, 18:15:18 CET »
+1
C'ho provato =P

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #6 il: 17 Dicembre 2012, 18:16:41 CET »
0
Grazie cmq  :-) Vedremo se qualcun altro sia così gentile da aiutarmi cm lo sei stato tu!

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Crash dopo tentata query SQLite
« Risposta #7 il: 18 Dicembre 2012, 13:50:27 CET »
+2
Prova usando questa variante del DatabaseHelper (ho cercato di sistemare quella che avevi postato ma... ho fatto prima a riscriverla in toto!)

Codice (Java): [Seleziona]
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Classe helper per l'accesso al database
 */

public class DatabaseHelper extends SQLiteOpenHelper {

  // versione del database, da incrementare quando si eseguono variazioni nella struttura
  public static final int DATABASE_VERSION = 1;
  // percorso dove vengono scritti i database in uso dell'applicazione
  private static String   DB_PATH          = "/data/data/Erbe.cure/databases/";
  // nome del file del database
  private static String   DB_NAME          = "Erbe.db.sqlite";

  /**
   * Costruttore di default
   * @param context
   */

  public SimplePlainDatabaseHelper(Context context) {
    // richiamo il super per le inizializzazioni del caso
    super(context, DB_NAME, null, DATABASE_VERSION);

    // controllo se il database esite
    if(!isDatabasePresent()) {
      try {
        // non esiste, lo copio dal folder assets
        copyDataBase(context);
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Verifica se il db è presente
   * @return true se il db risulta presente nel percorso previsto,
   *         false in caso contrario
   */

  private boolean isDatabasePresent() {
    // banalmente controllo se esiste il file
    File dbFile = new File(DB_PATH+DB_NAME);
    return dbFile.exists();
  }

  /**
   * Esegue la copia del file contenente il db dal folder assets
   * nel folder previsto per l'applicazione.
   *
   * @param myContext contesto di riferimento per accedere al folder assets
   * @throws IOException
   */

  private void copyDataBase(Context myContext) throws IOException {  
   
    // Open your local db as the input stream
    InputStream myInput = myContext.getAssets().open(DB_NAME);

    // Path to the just created empty db
    String outFileName = DB_PATH + DB_NAME;

    // Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);

    // transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
      myOutput.write(buffer, 0, length);
    }

    // Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();    
  }

  /**
   * Operazioni alla creazione del database
   * (chiamato da getWritableDatabase)
   */

  @Override
  public void onCreate(SQLiteDatabase db) {
    // non devo fare nulla, se è il primo avvio
    // l'ha già copiato il costruttore e db
    // è il db copiato
  }

  /**
   * Operazioni all'aggiornamento del database
   * (chiamato da getWritableDatabase)
   */

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // nothing to do...
    // NB: posso contare su questo metodo solo per fare variazioni al db via query sql
    // (alter table, insert, update, ecc...)
    // Non posso prendere una nuova versione del db dall'asset e copiarla con copyDataBase.
    // Questo perché quando arrivo qui db è già stato aperto con la versione precedente, e
    // sarà questa versione ad essere passata al chiamante di getWritableDatabase, non la
    // nuova che copio!
    // Se voglio fare aggiornamenti dell'intero database al cambio di versione può conviene
    // sovrascrivere direttamente getWritableDatabase, in modo da avere pieno controllo sul
    // db che apre.
  }
}

A me così va(TM)

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #8 il: 20 Dicembre 2012, 14:04:55 CET »
0
Scusa ma la query come la fai... ovvero come utilizzi questa classe?

Io faccio così, ma non va:

Codice (Java): [Seleziona]
       
        SQLiteDatabase mDb;
        DatabaseHelper mDbHelper = new DatabaseHelper(this);
       
        //open
        mDb=mDbHelper.getWritableDatabase();
                Cursor cursor = mDbHelper.fetchPlant();
                mDb.close();


Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Crash dopo tentata query SQLite
« Risposta #9 il: 20 Dicembre 2012, 14:15:06 CET »
+1
Hai postato il codice di 3 classi: DatabaseHelper, DbAdapter (che usa il DatabaseHelper) e l'activity (che usa il DbAdapter).
Io ho solo fatto funzionare il DatabaseHelper in modo che faccia la copia del db dall'asset, il resto non l'ho toccato ne come codice ne come logica.

Per cui copio & incollo il tuo stesso codice dell'activity:

Codice (Java): [Seleziona]
        dbHelper = new DbAdapter(this);
        dbHelper.open();
       
        cursor = dbHelper.fetchPlant();
        dbHelper.close();

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #10 il: 20 Dicembre 2012, 14:52:46 CET »
0
Niente da fare... da me continua a non funzionare, La prima classe è quella che hai scritto tu, la seconda è la mia (DbAdapter) e la terza è anche la mia dove accedo al DB per fare le query, ma crasha.
Quando commento la riga
Codice (Java): [Seleziona]
cursor = dbHelper.fetchPlant();l'app funziona, mentre se viene eseguita crasha. :(
Potrebbe essere un problema del file.db... ma mi sembra difficile. L'ho creato con l'estenzione di firefox che mi fornisce il file.db.sqlite e l'ho copiato in assets del progetto android.
Comunque se il tuo funziona metto risolto al topic... non so più cosa fare! :(

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Crash dopo tentata query SQLite
« Risposta #11 il: 20 Dicembre 2012, 15:00:32 CET »
+1
Ma ti da lo stesso errore di prima? Non trova la tabella?
O è cambiato l'errore?

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #12 il: 20 Dicembre 2012, 15:11:54 CET »
0
Si è sempre lo stesso errore!
Incredibile, ma vero!
Il DB che hai provato tu come lo hai creato? Con l'estensione di Firefox?
Arrivati a questo punto, secondo me il problema è lì. Non riesce a leggere il DB e quindi non trova la tabella!

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:Crash dopo tentata query SQLite
« Risposta #13 il: 20 Dicembre 2012, 15:19:46 CET »
0
Ok Ho risolto :)

Ho rinominato il DB da Erbe.db.sqlite ad Erbe.sqlite e l'app non crasha più. La tua classe funziona alla perfezione. Ti Ringrazio :)
« Ultima modifica: 20 Dicembre 2012, 15:43:26 CET da pupi93 »

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Crash dopo tentata query SQLite
« Risposta #14 il: 20 Dicembre 2012, 15:22:58 CET »
0
Ok Ho risolto :)

Ottimo!

Citazione
Ho rinominato il DB da Erbe.db.sqlite ad Erbe.squlite e l'app non crasha più. La tua classe funziona alla perfezione. Ti Ringrazio :)

Misteri della fede...