gpt4 book ai didi

java - 无法使用自定义 sqlite 绑定(bind)创建数据库

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:38 24 4
gpt4 key购买 nike

我为 android studio 定制了内置 Sqlite。能够存储多边形坐标。

但是运行我的代码会产生错误

Caused by: org.sqlite.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database

尝试 getReadableDatabase() 时;

public class MainActivity extends AppCompatActivity

implements NavigationView.OnNavigationItemSelectedListener {

private TestOpenHelper mOpenHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.loadLibrary("sqliteX");
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

mOpenHelper = new TestOpenHelper(this);

mOpenHelper.getReadableDatabase();

TestOpenHelper class

import  org.sqlite.database.sqlite.SQLiteDatabase;;
import org.sqlite.database.sqlite.SQLiteOpenHelper;

public class TestOpenHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "test.db";
public static final int DaATABASE_VERISION = 1;
public TestOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DaATABASE_VERISION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TestDatabaseContract.OwnerInfoEntry.SQL_CREATE_TABLE);
db.execSQL(TestDatabaseContract.PropertyInfoEntry.SQL_CREATE_TABLE);


DatabaseDataWorker worker = new DatabaseDataWorker(db);
worker.insertOwnerInfo();
worker.insertPropertyInfo();


}

DatabaseCoontract Class

import android.provider.BaseColumns;


public final class TestDatabaseContract {
private TestDatabaseContract() {}

public static final class PropertyInfoEntry {
public static final String TABLE_NAME = "property_info";
public static final String COLUMN_PROPERTY_ID = "property_id";

public static final String SQL_CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " USING geopoly(" + COLUMN_PROPERTY_ID + ")";
}
public static final class OwnerInfoEntry implements BaseColumns{
public static final String TABLE_NAME = "owner_info";
public static final String COLUMN_OWNER_ID = "id";
public static final String COLUMN_OWNER_NAME = "name";
public static final String COLUMN_OWNER_LOCATION = "location";
public static final String COLUMN_PROPERTY_ID = "property_id";

public static final String SQL_CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " (" +
_ID + " INTEGER PRIMARY KEY, " +
COLUMN_OWNER_ID + " INTEGER UNIQUE NOT NULL, " +
COLUMN_OWNER_NAME + " TEXT NOT NULL, " +
COLUMN_OWNER_LOCATION + " TEXT NOT NULL, " +
COLUMN_PROPERTY_ID + " TEXT)";
}

}

最佳答案

我遇到了类似的问题,我用 CL 提供的解决方案解决了它 here

关于java - 无法使用自定义 sqlite 绑定(bind)创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57038923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com