android.database.sqlite.SQLiteCantOpenDatabaseException: errore sconosciuto (codice 14): Imansible aprire la difficoltà del database

Sto provando a risolvere un errore che non mi permette di aprire il database. Forse attraverso tutte le fusioni, qualcosa è andato storto, ma non riesco a trovare. Ecco il mio rapporto di Log Cat .

  E/SQLiteLog(894): (14) cannot open file at line 30191 of [00bb9c9ce4] E/SQLiteLog(894): (14) os_unix.c:30191: (2) open(/data/data/com.packagename/databases/MainDB) - Failed to open database '/data/data/com.packagename/databases/MainDB'. android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669) at com.packagename.database.DBAdapter$DatabaseHelper.checkDataBase(DBAdapter.java:757) at com.packagename.database.DBAdapter$DatabaseHelper.createDataBase(DBAdapter.java:734) at com.packagename.database.DBAdapter.resetAllData(DBAdapter.java:490) at com.packagename.OptionActivity$4.onClick(OptionActivity.java:157) at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) 

E qui sono i frammenti del codice che sono visibili (o collegati) al registro.

  • L'opzione di debug USB è distriggersta
  • Come eliminare il file di archiviazione interna in android?
  • Android Studio - Edizione in build.gradle errore di traduzione non eseguito ExecutionException OutOfMemory
  • Individuazione delle perdite di memory nativa nel codice Android JNI
  • Visualizza il file PDF all'interno della mia applicazione android
  • come aggiungere viste al layout lineare?
  • Opzione Attività

     public void onClick_ResetAll(final View v) { .... .... @Override public void onClick(DialogInterface dialog, int which) { TrackUtils.sendClickTrack(OptionActivity.this, "ui_action", "button_press", "Resetall_yes"); final DBAdapter dba = new DBAdapter(v.getContext()); dba.open(); dba.resetAllData(v.getContext()); dba.close(); } .... .... } 

    Classe DBAdapter

     private DatabaseHelper mDbHelper; private static SQLiteDatabase mDb; @SuppressLint("SdCardPath") private static String DB_PATH; private static final String DATABASE_NAME = "MainDB"; private static final int DATABASE_VERSION = 3; private final Context adapterContext; public DBAdapter(Context context) { this.adapterContext = context; DB_PATH = adapterContext.getFilesDir().getAbsolutePath().replace("files", "databases") + File.separator; } public DBAdapter open() throws SQLException { mDbHelper = new DatabaseHelper(adapterContext); try { mDbHelper.createDataBase(); } catch (IOException ioe) { throw new Error("Unable to create database"); } try { mDbHelper.openDataBase(); } catch (SQLException sqle) { throw sqle; } return this; } public void resetAllData(Context context) { context.deleteDatabase("MainDB"); mDbHelper = new DatabaseHelper(adapterContext); try { mDbHelper.createDataBase(); } catch (IOException ioe) { throw new Error("Unable to create database"); } try { mDbHelper.openDataBase(); } catch (SQLException sqle) { throw sqle; } } 

    DatabaseHelper (estende SQLiteOpenHelper)

      DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); helperContext = context; } public void createDataBase() throws IOException { boolean dbExist = checkDataBase(); if (dbExist) { } else { this.getReadableDatabase(); try { copyDataBase(); } catch (IOException e) { throw new Error("Error copying database"); } } } private boolean checkDataBase() { SQLiteDatabase checkDB = null; try { String myPath = DB_PATH + DATABASE_NAME; checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); // This is where the error apparently occurs } catch (SQLiteException e) { } if (checkDB != null) { checkDB.close(); } return checkDB != null ? true : false; } 

    Ho cercato soluzioni su questo sito web ma senza alcun risultato.

  • ScrollView combattimenti con scorrimento di TimePicker, Timepicker non scorrimento come risultato
  • opencv C ++ crea object Mat da android NV21 buffer di dati image
  • utilizzare la semplice associazione sicura di Jelly Bean (Bluetooth) per abbinare a NFC
  • Android: Ottieni il nome dell'applicazione (non il nome del pacchetto)
  • Problema con l'upload di immagini Android sul server
  • Il punteggio non supera quello su un click corretto del button? (Java - Studio Android)
  • One Solution collect form web for “android.database.sqlite.SQLiteCantOpenDatabaseException: errore sconosciuto (codice 14): Imansible aprire la difficoltà del database”

    Si utilizza SQLiteDatabase.openDatabase in un path di file che potrebbe non esistere. Aggiungi sotto due righe appena prima di call SQLiteDatabase.openDatabase

     File file = new File(myPath); if (file.exists() && !file.isDirectory()) 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.