Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从MyApplication打开SQLite数据库-can';无法在读/写模式下打开_Android_Sqlite - Fatal编程技术网

Android 从MyApplication打开SQLite数据库-can';无法在读/写模式下打开

Android 从MyApplication打开SQLite数据库-can';无法在读/写模式下打开,android,sqlite,Android,Sqlite,我试图改变我的数据库接口实现,在MyApplication extensed应用程序中打开它,基本上从不关闭它(我做了一些研究,一位谷歌工程师推荐了它,请看链接问题)。我所做的修改非常小,但现在系统在打开数据库时抛出以下错误: E/SQLiteDatabase(15690): android.database.sqlite.SQLiteException: not an error (code 0): Could not open the database in read/write mode.

我试图改变我的
数据库接口
实现,在
MyApplication extensed应用程序
中打开它,基本上从不关闭它(我做了一些研究,一位谷歌工程师推荐了它,请看链接问题)。我所做的修改非常小,但现在系统在打开数据库时抛出以下错误:

E/SQLiteDatabase(15690): android.database.sqlite.SQLiteException: not an error (code 0): Could not open the database in read/write mode.
这是相关代码

MyApplication.java

@Override
public void onCreate() {
    super.onCreate();
    try {
        DatabaseInterface.open();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
public class DatabaseInterface extends SQLiteOpenHelper {

    private final static String DB_PATH = Constants.DB_PATH;
    private final static String DB_NAME = Constants.DB_NAME;
    private static SQLiteDatabase mDatabase;
    private Context mContext;
    private static DatabaseInterface mInstance;

    private DatabaseInterface(Context context) {
        super(context, DB_NAME, null, 1);
        this.mContext = context;
    }

    public static DatabaseInterface getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new DatabaseInterface(context);
        }
        return mInstance;
    }

    public static void open() throws SQLException, IOException {
        //Open the database
        String path = DB_PATH + DB_NAME;
        mDatabase = SQLiteDatabase.openOrCreateDatabase(new File(path), null);
    }
}
DatabaseInterface.java

@Override
public void onCreate() {
    super.onCreate();
    try {
        DatabaseInterface.open();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
public class DatabaseInterface extends SQLiteOpenHelper {

    private final static String DB_PATH = Constants.DB_PATH;
    private final static String DB_NAME = Constants.DB_NAME;
    private static SQLiteDatabase mDatabase;
    private Context mContext;
    private static DatabaseInterface mInstance;

    private DatabaseInterface(Context context) {
        super(context, DB_NAME, null, 1);
        this.mContext = context;
    }

    public static DatabaseInterface getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new DatabaseInterface(context);
        }
        return mInstance;
    }

    public static void open() throws SQLException, IOException {
        //Open the database
        String path = DB_PATH + DB_NAME;
        mDatabase = SQLiteDatabase.openOrCreateDatabase(new File(path), null);
    }
}

好吧,这是因为我忘了添加


由于我的数据库位于手机的外部存储器中,因此我的
AndroidManifest.xml

好的,这是由于我忘记添加

当我的数据库驻留在手机的外部存储器中时,发送到我的
AndroidManifest.xml