2

このような不自由な問題で申し訳ありませんが、4時間解決できません。SQLiteOpenHelper で使用できる /assets フォルダーからデータベースをコピーしようとしていますが、InputStream を開こうとするとエラーが発生します。

 E/Trace: error opening trace file: No such file or directory (2)

コード:

public static final String DATABASE_PATH =  "/data/data/com.mycomp.myapp/databases/";
public static final String DATABASE_NAME = "database.db"; 

@Override
    protected void onCreate(Bundle savedInstanceState) {   
        try {
            copyDatabase(getApplicationContext());
        } catch (IOException e) {
            e.printStackTrace();
            Log.d(TAG, "blad" + e.toString());
        }
    }

    private void copyDatabase(Context context) throws IOException {
       String outfilename = DATABASE_PATH + DATABASE_NAME;

       InputStream myinput = context.getAssets().open("database.db");

       OutputStream myoutput = new FileOutputStream(outfilename);

       byte[] buffer = new byte[1024];
       int length;
       while ((length = myinput.read(buffer)) > 0) {
          myoutput.write(buffer, 0, length);
      }

       myoutput.flush();
       myoutput.close();
       myinput.close();
    }
4

2 に答える 2

0

DB_NAME.open("database.db")両方から.db拡張子を削除し て ください

それでもうまくいかない場合は、データベースのサイズをお知らせください。

于 2013-05-20T07:47:23.413 に答える