Sqlite3 Unity发布安卓包出现的问题处理

文章讲述了在Android应用中遇到的SQLite连接问题,涉及到从StreamingAssets路径迁移数据库至PersistentDataPath以实现读写,以及解决Mono.data.sqlite.unsafenativemethods错误的方法,即升级并适配libsqlite3库。
摘要由CSDN通过智能技术生成

1.invalid connectionstring format for parameter “Data Source”

当进行如下引用时出现标题错误

string appDBPath = Application.streamingAssetsPath + dbpath;
SqliteTool.Instance.ConnectDB(appDBPath);

 经检索发现由于安卓端StreamingAssets路径是只读的,需要将原始文件转移到可读写文件夹中才可执行读写操作,当使用以下代码拷贝数据库到本地文件夹重建本地可读写数据库即可解决该错误

        private IEnumerator ConnectDB(Action action)
        {
            if (!File.Exists(Application.persistentDataPath + "/DB/test.db"))
            {
                using (WWW www = new WWW(Application.streamingAssetsPath + "/DB/test.db"))
                {
                    while (!www.isDone)
                    {
                        yield return null;
                    }
                    if (!Directory.Exists(Application.persistentDataPath + "/DB"))
                        Directory.CreateDirectory(Application.persistentDataPath + "/DB");
                    kk = www.bytes;
                }
                using (FileStream fi = File.Open(Application.persistentDataPath + "/DB/test.db", FileMode.OpenOrCreate))
                {
                    fi.Write(kk, 0, kk.Length);
                }
                SqliteTool.Instance.ConnectDB(Application.persistentDataPath + "/DB/test.db");
                action?.Invoke();
            }
            else
            {
                SqliteTool.Instance.ConnectDB(Application.persistentDataPath + "/DB/test.db");
                yield return null;
                action?.Invoke();
            }
        }

2.mono.data.sqlite.unsafenativemethods

问题1解决后出现标题所示错误经搜索后发现是sqlite3版本问题,需要下载libsqlite3来做安卓端的适配。关于libsqlite3可以直接百度下载也可以搜索教程自己编译,相关教程比较多,自行百度。

下载之后解压进入到如上图所示路径下所有文件放到工程目录中如下图所示

然后将目录下的所有libsqlite3.so选择Include Platforms→Android根据目录名进行Platform settings配置,当然如果已经配置过就不用重新配置了。

例如Plugins/Android/libs/arm64-v8a/libsqlite3.so文件配置即为ARM64

重新打包,正常运行。

这是一个更详细的关于sqlite3的使用介绍点击这里进入

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值