【问题标题】:Database is shown in emulator but not on my android device数据库显示在模拟器中,但不在我的 android 设备上
【发布时间】:2012-10-04 20:39:26
【问题描述】:

这是我的代码...

private static String DB_NAME = "pa1.db";
private static String DB_PATH = "/data/data/in.bitcode.sn/databases/";
private void copyDataBase() throws IOException {

    InputStream myInput = context.getAssets().open(DB_NAME);

    String outFileName = DB_PATH + DB_NAME;

    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();

}

【问题讨论】:

  • 您无法写入/data 文件夹。它可以在模拟器中运行,因为在模拟器中您是 root,而您可能不在设备中。
  • 那么解决方案是什么?
  • 检查我的答案。除此之外,没有解决办法,只能在您的设备中成为 root。
  • 包名是否必须从 com.packagename 开始???
  • 不,但这与您的问题无关。

标签: android sqlite android-assets


【解决方案1】:

您无法写入/data 文件夹。这是一个 Android 系统文件夹。它可以在模拟器中运行,因为在模拟器中您是 root,而您可能不在设备中。

也许您想使用Android's integrated backup API 而不是这个。

【讨论】:

  • 在string.xml中存储字符串数组有没有限制
  • 对不起,这与您的问题无关。如果您想问其他问题,请提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多