【问题标题】:Godot SQLite Database on Android ExportAndroid 导出上的 Godot SQLite 数据库
【发布时间】:2021-10-07 23:20:33
【问题描述】:

我在将项目导出到 Android 时遇到问题。

我的res://中有以下文件和文件夹

res://addons/godot-sqlite/
res://dataStore/database.db
res://dataStore/database.sqbpro
res://globalenv/globalfunctions.gd
res://globalenv/globalvar.gd
res://scenes/

我在 Android 导出中导出本地数据库时遇到了一些问题,例如,我的代码中有以下变量:

const SQLite = preload("res://addons/godot-sqlite/bin/gdsqlite.gdns")
var db # database object
var db_name = "res://dataStore/database.db" # database path

我已将 database.db 的路径更改为

var db_name = "user://database.db"

然后我将database.db复制到我的

C:\Users\Username\AppData\Roaming\Godot\app_userdata\project-name

在 Godot 的“播放项目”按钮中,数据库工作正常,但是当我将项目导出到 Android 时,将database.db 添加到资源中的非资源过滤器并安装了.apk,登录不起作用.

filter to export non-resources files

有什么想法吗?

谢谢大家!

【问题讨论】:

    标签: android sqlite android-sqlite godot gdscript


    【解决方案1】:

    使用通配符添加导出,例如*.db有一个问题 - 我相信仍然存在 - 如果没有通配符,此选项将不起作用。

    这应该使*.db 文件在其res:// 路径中可用。这是只读的。

    由于只读对数据库不利,请将其复制到user:// 路径。您可以使用Directory 类的对象来检查它是否已经存在,如果不存在则从res:// 复制到user://

    然后继续使用user:// 路径中的数据库。

    【讨论】:

    • 我将 database.db 复制到 C:\Users\Username\AppData\Roaming\Godot\app_userdata\project-name 并将 *.db 添加到导出中,但它仍然不读取数据库。我错过了什么?
    • 我也应该将所有 Godot SQLite 插件复制到 user:// 路径吗?
    • @gabe "C:\Users\Username\AppData\Roaming\Godot\app_userdata\project-name" 在你的电脑里,不是吗? - 你不想要安卓吗?我不是在告诉您手动将数据库复制到 PC 的用户路径。我告诉你编写代码,使用 Directory 类将数据库从 res 路径复制到 Android 的用户路径。
    • 我现在明白了。我在_ready函数的第一个场景中制作了以下代码:var dir = Directory.new()dir.copy("res://dataStore/database.db", "user://")并且database.db和文件出现但在一个名为“files”的文件夹中(我正在使用Android Studio进行调试)如何我的代码错了吗?
    • 没关系,我只是错过了复制函数第二个参数中的"user://database.db"。谢谢你的帮助,你现在是我的英雄!大声笑爱你
    猜你喜欢
    • 1970-01-01
    • 2011-09-26
    • 2013-05-08
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多