unity 在安卓中使用SQLite因注意以下几点:
1.在Player Setting里的 把API Compatbility Level 选择.NET 2.0。
2.把数据库放在StreamingAssets文件下
3.由于在安卓中StreamingAssets下的文件是只读属性,所以要把数据库拷贝到沙盘路径
关键代码如下:
#if UNITY_EDITOR
path = Application.streamingAssetsPath + datebaseName;
#elif UNITY_ANDROID
// 沙盘路径
path = Application.persistentDataPath + datebaseName;
if (File.Exists(path)) {
// 如果沙盘路径中已经有数据库,应该先删除掉,以防是数据库有更新
File.Delete(path);
}
// jar:file:是安卓手机路径的意思
// Application.dataPath + "!/assets/" 即 Application.dataPath/StreamingAssets
WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets" + datebaseName);
while (!loadDB.isDone) { }
// 因为安卓中stream路径下的文件权限是只读,所以获取之后把他拷贝到沙盘路径中
File.WriteAllBytes(path, loadDB.bytes);
#else
path = Application.streamingAssetsPath + datebaseName;
#endif
_Connection = new SqliteConnection("URI=file:" + path);