Java 创建表android\u元数据失败

Java 创建表android\u元数据失败,java,android,sqlite,Java,Android,Sqlite,我开发了一个在设备中访问数据库的应用程序;但是,我现在不知道它不能访问数据库执行如下代码行: this.productoHelper.getWritableDatabase(); 这是我的异常堆栈跟踪: 01-16 19:20:04.629: E/Database(17236): CREATE TABLE android_metadata failed 01-16 19:20:04.639: E/Database(17236): Failed to setLocale() when const

我开发了一个在设备中访问数据库的应用程序;但是,我现在不知道它不能访问数据库执行如下代码行:

this.productoHelper.getWritableDatabase();
这是我的异常堆栈跟踪:

01-16 19:20:04.629: E/Database(17236): CREATE TABLE android_metadata failed
01-16 19:20:04.639: E/Database(17236): Failed to setLocale() when constructing, closing the database
01-16 19:20:04.639: E/Database(17236): android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1987)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1855)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:847)
01-16 19:20:04.639: E/Database(17236):  at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:550)
01-16 19:20:04.639: E/Database(17236):  at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
01-16 19:20:04.639: E/Database(17236):  at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
01-16 19:20:04.629:E/数据库(17236):创建表android_元数据失败
01-16 19:20:04.639:E/Database(17236):构建时无法设置Locale(),请关闭数据库
01-16 19:20:04.639:E/数据库(17236):android.Database.sqlite.SQLiteDatabaseCorruptException:数据库磁盘映像格式不正确
01-16 19:20:04.639:E/Database(17236):在android.Database.sqlite.SQLiteDatabase.native_setLocale(native方法)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1987)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteDatabase.(SQLiteDatabase.java:1855)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:847)
01-16 19:20:04.639:E/Database(17236):位于android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:550)
01-16 19:20:04.639:E/Database(17236):位于android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
01-16 19:20:04.639:E/Database(17236):位于android.Database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)

顺便说一下!当我尝试从Eclipse Emulator执行此操作时,它运行正常,但未在设备中运行。

在打开数据库之前尝试使用。

调用SQLiteDatabase时,您只需要使用SQLiteDatabase.NO\u LOCALIZED\u COLLATORS标志。openDatabase()

是否在应用程序中创建数据库,或者在应用程序中附带一个预制的应用程序?请尝试使用adb卸载,然后重新安装。我曾经遇到过这样的问题,即在安装新版应用程序时,旧文件被保留下来,并且从未更新过。我认为onCreate of helper类被称为recursivly(getWritableDatabase是从onCreate(of helper)调用的),但我只能猜这个问题是在Google Nexus One设备中特别出现的,这不是任何特定的操作系统问题,也不是任何其他设备问题。嗨!这是我在helper和provider类中的代码。它一直运行,但现在不运行(在设备中,而不是在模拟器中)<代码>公共产品QliteHelper(上下文上下文、字符串名称、游标工厂、int版本){super(上下文、名称、工厂、版本);//TODO自动生成的构造函数存根}@Override public void onCreate(SQLiteDatabase db){try{//db.execSQL(sqlCreate);}catch(SQLException e){e.printStackTrace();}@hovanesyan为什么问你我的数据库名?我还没工作呢!在我的设备上运行我的应用程序时,我继续收到相同的错误。实际上,我的问题是,现在我无法从我的提供者类
公共游标查询(Uri Uri、字符串[]投影、字符串选择、字符串[]选择、字符串排序器)打开我的数据库{private productosqliteheloper ProductoHelper;SQLiteDatabase db=this.ProductoHelper.getWritableDatabase();…
现在我的所有提供程序类都出现了,但我不知道为什么。我已经检查了我的数据库是否已创建,是否正确!:_(Thanx@hovanesyan,但我没有解决我的问题;但是,我认为我没有正确使用。pen数据库使用SQLiteDatabase.openDatabase(…SQLiteDatabase.NO\u本地化\u COLLATORS)的过程是什么。