CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 29 Thanks ricevuti nell'ultimo mese

Pagina 2 di 5 primaprima 1234 ... ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 11 a 20 su 49
Discussione:

[ECLIPSE] Copia db sqlite preesistente da 'assets' a /data/data/..

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #11
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da lorenzogiudici5 Visualizza il messaggio
    Ho provato a fare entrambe le cose. L'errore table not found pare aggirato, ora però mi da un NullPointerException.
    Idee su quale potrebbe essere il problema a questo punto?
    Aspetta, farti fare la query di select sulla tabella android_metadata era un test (positivo) per capire che in effetti il .getReadableDatabase ti ha creato il file del db vuoto e tu consulti quello (per questo hai l'error 'table rubrica not found').

    In merito al nullpointer exception, puoi postare il logcat relativo? Quando hai l'errore?
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  2.  
  3. #12
    Baby Droid


    Registrato dal
    Apr 2012
    Messaggi
    11

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    log.txt Ti allego il log.
    E' vero, il test pare positivo (non mi da più l'errore di table not found), ora questo nullpointer exception però non so proprio da dove possa arrivare
    Ultima modifica di lorenzogiudici5; 19-04-12 alle 20:34

  4. #13
    Baby Droid


    Registrato dal
    Apr 2012
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao,

    ti faccio una domanda perché ho ancora dei problemi.

    Io ho la mia classe Login iniziale.

    Il mio databaseHelper è così:

    public class DatabaseHelper extends SQLiteOpenHelper {

    private static String DATABASE_NAME = "cp.db";
    private static String DATABASE_PATH = "data/data/miapp/";

    private static final int SCHEMA_VERSION = 2;

    public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, SCHEMA_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqlDB) {

    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

    }


    private SQLiteDatabase openDataBase(int flag) {

    SQLiteDatabase checkDB = null;

    try {
    String myPath = DATABASE_PATH + DATABASE_NAME;
    Environment.getExternalStorageDirectory();
    Environment.getDataDirectory();
    Environment.getRootDirectory();
    Environment.getExternalStorageState();
    checkDB = getWritableDatabase();

    } catch (Exception e) {
    e.printStackTrace();
    }

    return checkDB;
    }

    public SQLiteDatabase openDataBaseSynch(int flag) { //per non far confusione con ilan metodo 'openDataBase', questo è usato per la sincronizzazione..

    SQLiteDatabase checkDB = null;

    try {
    String myPath = DATABASE_PATH + DATABASE_NAME;
    Environment.getExternalStorageDirectory();
    Environment.getDataDirectory();
    Environment.getRootDirectory();
    Environment.getExternalStorageState();
    checkDB = getWritableDatabase();

    } catch (Exception e) {
    e.printStackTrace();
    }

    return checkDB;
    }

    ......

    }


    Nella mia classe Login parto col il mio metodo:



    public void login(View view)
    {
    if (!checkData())
    return;

    dbManager = new DatabaseHelper(this);
    try {
    copyDatabase();
    }..


    e poi uso il tuo metodo:

    public void copyDatabase() throws IOException {


    InputStream assetsDB = this.getAssets().open("database_sul_dispositivo.db ");
    OutputStream dbOut = new FileOutputStream(dbManager.DATABASE_PATH + "DbManager.DATABASE_NAME");
    byte[] buffer = new byte[1024];
    int length;
    while ((length = assetsDB.read(buffer))>0){
    dbOut.write(buffer, 0, length);
    }
    dbOut.flush();
    dbOut.close();
    assetsDB.close();
    }

    Ma una volta eseguito il tutto mi dice che non trova le tabelle..
    Cosa sbaglio?

  5. #14
    Baby Droid


    Registrato dal
    Apr 2012
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 0 volte in 0 Posts
    Predefinito

    non fate caso al metodo :

    public SQLiteDatabase openDataBaseSynch(int flag)

  6. #15
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da lorenzogiudici5 Visualizza il messaggio
    log.txt Ti allego il log.
    E' vero, il test pare positivo (non mi da più l'errore di table not found), ora questo nullpointer exception però non so proprio da dove possa arrivare
    Ciao,

    in merito all'errore, che hai in Database_frank17_provaActivity.java:24 (riga 24) ?
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  7. #16
    Baby Droid


    Registrato dal
    Apr 2012
    Messaggi
    11

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho il metodo per richiamare la query.
    String contenutoletto = miodb.queueAll();

  8. #17
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da lorenzogiudici5 Visualizza il messaggio
    Ho il metodo per richiamare la query.
    String contenutoletto = miodb.queueAll();
    Ok, per sicurezza ricompila il progetto con quella riga commentata, in modo da circoscrivere il problema effettivamente a quella e vedi eseguendo se l' errore non sussiste. poi eseguiamo le dovute correzioni

    Inviato dal mio GT-N7000 usando Tapatalk
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  9. #18
    Baby Droid


    Registrato dal
    Apr 2012
    Messaggi
    11

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho provato a commentare prima e dopo di String contenutoletto = miodb.queueAll();
    Se lo metto prima nel Log compare, mentre se metto Log.e dopo non mi compare nel Log. Pare che l'errore sia proprio li..

  10. #19
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da lorenzogiudici5 Visualizza il messaggio
    Ho provato a commentare prima e dopo di String contenutoletto = miodb.queueAll();
    Se lo metto prima nel Log compare, mentre se metto Log.e dopo non mi compare nel Log. Pare che l'errore sia proprio li..
    Bene, che fa il metodo .queueAll() ? Il null pointer exception deriverà da un mancato istanziamento o ad un riferimento ad un oggetto non ancora allocato in memoria

    Inviato dal mio GT-N7000 usando Tapatalk
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  11. #20
    Baby Droid


    Registrato dal
    Apr 2012
    Messaggi
    11

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    public String queueAll(){
    String[] columns = new String[]{KEY_CONTENT};
    Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
    null, null, null, null, null);
    String result = "";

    int index_CONTENT = cursor.getColumnIndex(KEY_CONTENT);
    for(cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()){
    result = result + cursor.getString(index_CONTENT) + "\n";
    }
    return result;
    }

    Il metodo .queueAll() l'ho preso dal tuo esempio. Praticamente fa una query della tabella contatti e aggiunge tutto quello che c'è nella colonna KEYCONTENT in una stringa

Pagina 2 di 5 primaprima 1234 ... ultimoultimo
Ultima pagina

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy