【问题标题】:how to solve a databse issue in actual android device?如何解决实际Android设备中的数据库问题?
【发布时间】:2012-10-06 21:28:57
【问题描述】:

我已经在我的应用程序中创建了数据库并将数据存储在该数据库中,当我在模拟器中运行我的应用程序时,它会显示所有数据,但是当我在我的 android 设备中运行相同的应用程序时,它会显示错误? 这是我的代码。

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

【问题讨论】:

  • 错误是什么?另外,数据库是否大于 1MB?另外,不要对路径进行硬编码。
  • 另外,你到底想做什么?
  • @Geobits DB 大于 1 MB 将无效。
  • @MMohsinNaeem 告诉我的 2.2 用户,几周前他们的应用程序在我实施拆分/复制之前崩溃了。我知道它是固定的现在,实际上是从 2.3 开始。不过,它仍然在旧设备上崩溃,这让人怀疑,因为他说它在模拟器上工作,而不是在设备上工作。无论哪种方式,他都说它只有 28kb,所以现在几乎不重要了。此时只需等待 logcat。
  • 我们想要 logcat,我们想要 logcat ;-D

标签: android sqlite android-emulator


【解决方案1】:

您不应该将数据库路径设置为固定,而是使用

context.getDatabasePath(DB_NAME)

【讨论】:

    猜你喜欢
    • 2019-03-01
    • 2016-01-18
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 2010-12-16
    • 2021-11-19
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多