1

我正在使用下面的代码将我的数据库复制到内部存储,但它并没有帮助我并且总是出现这个错误。我经历了很多问题和答案,并尝试了很多博客文章,但无法使其发挥作用。我的手机是HTC One X

我还在清单文件中添加了一项权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />



public static boolean backUpDataBase(Context context)
    {
        String packageName = "com.projectWork.mobile";
        try {
            File sd = Environment.getExternalStorageDirectory();
            File data = Environment.getDataDirectory();

            if (Environment.MEDIA_MOUNTED.equals(sd))
            {
                String currentDBPath = "//data//"+ packageName +"//databases//"+"appDb.db";
                String backupDBPath = "appDb.db";
                File currentDB = new File(data, currentDBPath);
                File backupDB = new File(sd, backupDBPath);

                FileChannel src = new FileInputStream(currentDB).getChannel();
                FileChannel dst = new FileOutputStream(backupDB).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
                Toast.makeText(context, backupDB.toString(), Toast.LENGTH_LONG).show();

            }
        } catch (Exception e) {

            Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();


        }

        return true;
    }

这是我得到的错误

java.io.FileNotFoundException:/mnt/sdcard/appDb.db:打开失败:EROFS(只读文件系统)

请指导,因为我想将我所有的错误存储在数据库中,以便我们以后分析它们。

谢谢

4

1 回答 1

1

试试这个方法。它在我身边工作。

String currentDBPath = "\\data\\"+ packageName +"\\databases\\"+"appDb.db";

也关注这个帖子

谢谢。

于 2012-10-22T12:07:22.903 回答