2014-02-15 29 views
0

我有我的應對DB我的APK一個問題...錯誤在DB的SQLite的Android

我發現這個代碼,即時通訊使用它,但發送我的錯誤:

Toast.makeText(getApplicationContext(), "Archivo no encontrado.", Toast.LENGTH_SHORT).show();//FILE DOESNT FOUND 

這是代碼...

private void copiarBaseDatos() { 
    String ruta = "/data/data/com.example.bbay/databases/"; 
    String archivo = "DBBay"; 
    File archivoDB = new File(ruta + archivo); 
    if (!archivoDB.exists()) 
    { 
     try 
     { 
      InputStream IS = getApplicationContext().getAssets().open(archivo); 
      OutputStream OS = new FileOutputStream(archivoDB); 
      byte[] buffer = new byte[1024]; 
      int length = 0; 
      while ((length = IS.read(buffer))>0) 
      { 
       OS.write(buffer, 0, length); 
      } 
      OS.flush(); 
      OS.close(); 
      IS.close(); 
     } 
     catch(FileNotFoundException e) 
     { 
      Toast.makeText(getApplicationContext(), "Archivo no encontrado.", Toast.LENGTH_SHORT).show();//FILE DOESNT FOUND 
     } 
     catch (IOException e) { 
      Toast.makeText(getApplicationContext(), "Error al copiar la Base de Datos.", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

任何幫助是很好,謝謝。

+0

首先你硬編碼路徑到您的應用程序的私有數據目錄。你不應該這樣做,而是看看這個文檔頁面:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal - 導致這個問題的原因可能是目錄結構'/ data/data/com.example.bbay/databases /'還不存在。嘗試使用'File'的'mkdirs'方法首先創建這些目錄。 – tiguchi

+0

解決我的問題,比你...我先用makedir()創建文件夾,它的工作原理.. :) – user3314345

回答

0

嘗試

this.getApplicationContext 
+0

更好地說,在哪裏他應該嘗試它。以及他所期望的。爲什麼。 – Gangnus