Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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
Java 在android中创建数据库_Java_Android - Fatal编程技术网

Java 在android中创建数据库

Java 在android中创建数据库,java,android,Java,Android,我创建了一个数据库并删除了它,在我的android htc mobile sqlite数据库上添加了注册表,没有任何问题 但是现在,在上次删除数据库之后,每次我想要创建一个新的数据库时,我都会收到一个sqlite异常,该异常表示我“无法打开数据库文件”,其中包含以下数据: serialVersionUID(运行时异常)=-7034897190745766939 原因=SQLiteException(id=830058513528) 原因=SQLiteException(id=8300585135

我创建了一个数据库并删除了它,在我的android htc mobile sqlite数据库上添加了注册表,没有任何问题

但是现在,在上次删除数据库之后,每次我想要创建一个新的数据库时,我都会收到一个sqlite异常,该异常表示我“无法打开数据库文件”,其中包含以下数据:

serialVersionUID(运行时异常)=-7034897190745766939
原因=SQLiteException(id=830058513528)
原因=SQLiteException(id=830058513528)
detailMessage=“无法打开数据库文件”(id=830058513560) stackState=(id=830058513672)
stackTrace=null

这是我创建数据库的代码:

private static String DB_PATH = "/data/data/Android.Applications/databases/testdatabase.db";

public void OpenDataBase(){

            SQLiteDatabase ApplicationDB = null;
            //Si existe la base de datos
            if(checkDataBase())
            {
                //Open readonlymode
                String myPath = DB_PATH;
                //open database as readwrite mode
                ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
            }
            else
            {
                try
                {
                    String myPath = DB_PATH ;
                    ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.CREATE_IF_NECESSARY);
                    CreateTables();
                    //create all the necessary tables
                    System.out.println("DataBASE CREATED");
                }
                catch(SQLiteException e)
                {
                    System.out.println("SQL LiteException"+ e.getMessage());
                }
            }
        }

 private boolean checkDataBase(){

        try{
            String myPath = DB_PATH;
            ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

        }catch(SQLiteException e){

            //database does't exist yet.
        }
        if(ApplicationDB != null){

            ApplicationDB.close();
        }
        return ApplicationDB != null ? true : false;
    }
这是删除数据库的代码

 public boolean DeleteDatabase()
        {
            boolean wasdeleted;
            try
            {
                File file=new File(DB_PATH);
                wasdeleted=file.delete();
            }
            catch(SecurityException e)
            {
                wasdeleted=false;

            }
            return wasdeleted;
        }
你能帮我一下吗?我在这里被卡住了,因为这个代码在几个小时前就开始工作了

提前谢谢。 顺致敬意,
若泽。

< p>您可以考虑切换使用<代码> SqLeLeOpenHelpP/COD>,这将消除大部分代码。 嗨,Currenty,我展示的代码是一个扩展SQLiteOpenHelper的类。谢谢当做Jose.SQLiteOpenHelper子类应该与您发布的内容完全不同。例如,您不会在SQLiteOpenHelper中打开自己的数据库——SQLiteDatabase对象作为onCreate()和onUpgrade()的参数提供给您。