2013-03-25 10 views
5

Ricevo questo errore nella mia app per Android db.net.sqlcipher.database.SQLiteException: non un errore:

Nel database SQLite sto recuperando il database dai miei script nella cartella assets con l'aiuto di questo codice.

manager = context.getResources().getAssets(); 
      input = manager.open("createDb.xml"); 
      xpp.setInput(input, null); 
      int type = xpp.getEventType(); 
      while(type != XmlPullParser.END_DOCUMENT) { 
       if(type == XmlPullParser.START_DOCUMENT) { 

        Log.d(Tag, "In start document"); 
       } 
       else if(type == XmlPullParser.START_TAG) { 
        Log.d(Tag, "In start tag = "+xpp.getName()); 
       } 
       else if(type == XmlPullParser.END_TAG) { 
        Log.d(Tag, "In end tag = "+xpp.getName()); 

       } 
       else if(type == XmlPullParser.TEXT) { 
        Log.d(Tag, "Have text = "+xpp.getText()); 
        String strquery = xpp.getText(); 
        db.execSQL(strquery); 
       } 
       type = xpp.next(); 
      } 
     } 
     catch (XmlPullParserException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

e il suo funzionamento soddisfacente.

ma sto eseguendo lo stesso codice nel database SQLCipher dando questo errore e crash dell'applicazione sempre.

anche io ho aggiunto tutte le librerie necessarie.

Failure 0 (not an error) on 0x1a1ab0 when executing ' 
FATAL EXCEPTION: main 
net.sqlcipher.database.SQLiteException: not an error: 
    at net.sqlcipher.database.SQLiteDatabase.native_execSQL(Native Method) 
    at net.sqlcipher.database.SQLiteDatabase.execSQL(SQLiteDatabase.java:1834) 
    at com.acs.android.fwk.database.ScriptExecutor.executeScripts(ScriptExecutor.java:86) 
    at com.acs.android.fwk.database.DatabaseHelper.onCreate(DatabaseHelper.java:55) 
    at net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:121) 
    at com.acs.android.fwk.database.DatabaseAdapter.open(DatabaseAdapter.java:79) 
    at com.acs.android.fwk.database.DatabaseAdapter.<init>(DatabaseAdapter.java:49) 
    at com.acs.android.fwk.database.DatabaseAdapter.getInstance(DatabaseAdapter.java:37) 
    at com.acs.nomad.ui.controller.DbDemoController.saveData(DbDemoController.java:27) 
    at com.acs.nomad.ui.controller.DbDemoController_$1.onClick(DbDemoController_.java:39) 
    at android.view.View.performClick(View.java:3511) 
    at android.view.View$PerformClick.run(View.java:14105) 
    at android.os.Handler.handleCallback(Handler.java:605) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4424) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    at dalvik.system.NativeStart.main(Native Method) 

qualsiasi aiuto per favore.

Thansk

+0

risolto questo problema? –

risposta

-1

ho avuto la mia soluzione: -

ho solo aggiungere

else if(type == XmlPullParser.TEXT) { 
    Log.d(Tag, "Have text = "+xpp.getText()); 
    if(xpp.isWhitespace()) 
    { 

    } 
    else 
    { 
    String strquery = xpp.getText(); 
    db.execSQL(strquery); 
    } 

} 

Sto controllando se lo spazio bianco dopo ENDTAG poi non fare nulla e andare al prossimo.

+0

perché giù voto .... – Unknown

5

Verificare di aver inserito il file icudt46l.zip all'interno della directory assets come ciò sia necessario per SQLCipher per Android di operare.

+0

ho già aggiunto questo in assests – Unknown

Problemi correlati