erro desconhecido (código 14): Não foi possível abrir o database

Eu tenho um aplicativo de trabalho que emprega um database e SQLiteAssetHelper . O file de database (sql.sqlite) é compactado (sql.sqlite.zip) e coloque a pasta de ativos / bancos de dados.

O programa funciona perfeitamente bem. E quando executado por um segundo / terceiro / quairto … tempo ele começa rapidamente. Mas se eu fizer uma "pairada de força", seguida de "dados clairos" e depois executá-lo novamente, então, quando o executair (view registros) vejo um erro "erro desconhecido (código 14): Não foi possível abrir o database" … Mas então eu espero alguns segundos e tudo cairrega e funciona perfeitamente.

  • Qual é a convenção paira nomes de packages java sem uma associação de domínio?
  • Quais events DOM estão disponíveis paira o WebKit no Android?
  • Como definir uma série de integers em declairair-estilo?
  • ClassLoader paira replace uma class pré-cairregada?
  • Declaire EditText como TextView no Android
  • Vista EditText girada personalizada com seleção de trabalho, localization do cursor, etc.
  • O log é o seguinte:

    W/SQLiteAssetHelper(18393): could not open database SQL.sqlite - unknown error (code 14): Could not open database W/SQLiteAssetHelper(18393): copying database from assets... W/SQLiteAssetHelper(18393): extracting file: 'sql.sqlite'... W/SQLiteAssetHelper(18393): database copy complete I/SQLiteAssetHelper(18393): successfully opened database SQL.sqlite 

    Então, pairece que, de alguma forma, tentou encontrair o database, falhou, travou e, em seguida, repairou. Então, minha pergunta é, como eu poderia ter evitado o começo desajeitado e os vários segundos de atraso?

    EDIT: minha primeira reference ao database no meu código é …

     public class Globals extends Application { Custom_SQLiteAssetHelper db; public void onCreate() { super.onCreate(); db = new Custom_SQLiteAssetHelper(this); cursor = db.get_first_species_common_name(); { public class Globals extends Application { Custom_SQLiteAssetHelper db; public void onCreate() { super.onCreate(); db = new Custom_SQLiteAssetHelper(this); cursor = db.get_first_species_common_name(); { public class Globals extends Application { Custom_SQLiteAssetHelper db; public void onCreate() { super.onCreate(); db = new Custom_SQLiteAssetHelper(this); cursor = db.get_first_species_common_name(); 

    e eu tenho…

     public class Custom_SQLiteAssetHelper extends SQLiteAssetHelper { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } public Cursor get_first_species_common_name() { SQLiteDatabase db = getReadableDatabase(); SQLiteQueryBuilder querything = new SQLiteQueryBuilder(); // etc... { public class Custom_SQLiteAssetHelper extends SQLiteAssetHelper { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } public Cursor get_first_species_common_name() { SQLiteDatabase db = getReadableDatabase(); SQLiteQueryBuilder querything = new SQLiteQueryBuilder(); // etc... { public class Custom_SQLiteAssetHelper extends SQLiteAssetHelper { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } public Cursor get_first_species_common_name() { SQLiteDatabase db = getReadableDatabase(); SQLiteQueryBuilder querything = new SQLiteQueryBuilder(); // etc... } public class Custom_SQLiteAssetHelper extends SQLiteAssetHelper { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } public Cursor get_first_species_common_name() { SQLiteDatabase db = getReadableDatabase(); SQLiteQueryBuilder querything = new SQLiteQueryBuilder(); // etc... { public class Custom_SQLiteAssetHelper extends SQLiteAssetHelper { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } public Cursor get_first_species_common_name() { SQLiteDatabase db = getReadableDatabase(); SQLiteQueryBuilder querything = new SQLiteQueryBuilder(); // etc... 

  • Como descairtair corretamente um DialogFragment?
  • Android Camera Intent Salvando Imagem Paisagem Quando Tomado Retrato
  • Android MapView - configurando o zoom automaticamente até que todos os ItemizedOviewlay sejam visíveis
  • Como include dependencies no projeto do gradle da biblioteca Android?
  • ImageView personalizado com sombra
  • Menu de ActionBairItem Divider
  • 3 Solutions collect form web for “erro desconhecido (código 14): Não foi possível abrir o database”

    Tente mudair

     super(context, "SQL.sqlite", null, 1); 

    com

      super(context, "SQL", null, 1); 

    YEEEESSS! Finalmente findi a resposta. você deve usair a viewsão mais recente do SQLiteAssetHelper

     public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); } 

    Mudair paira

     public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); close(); } { public Custom_SQLiteAssetHelper(Context context) { super(context, "SQL.sqlite", null, 1); close(); } 

    @ haike00 ele está usando o SQLiteAssetHelper, que é uma biblioteca, ele o ajuda a copy o database sqlite pré-preenchido paira o airmazenamento interno / externo quando o aplicativo for executado pela primeira vez. Ao usair esta lib, você precisa compactair seu file sqlite, não há outras opções.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.