【问题标题】:Kivy Android Sqlite3 fts app crashes with a "no such module" errorKivy Android Sqlite3 fts 应用程序因“没有此类模块”错误而崩溃
【发布时间】:2016-12-30 19:59:11
【问题描述】:

我正在构建我的第一个应用程序,它包括一个使用 FTS 的带有 sqlite3 的小型数据库。我可以在手机中推送我的应用程序并且它可以工作,但是当我在数据库上执行 FTS 查询时它会崩溃。我明白了:

12-30 15:37:02.861 28307 28337 I python  : Error no such module: fts3:

该应用程序在编译之前运行良好,所以我猜在编译过程中忘记了 fts?

知道如何解决这个问题吗? Kivy 真的支持 FTS 吗?

我快到了!感谢您的帮助!

【问题讨论】:

    标签: android sqlite crash full-text-search kivy


    【解决方案1】:

    如果 FTS 不是纯 Python(C 扩展什么的),那么它需要一个 recipe,否则你只需要在构建应用时在 requirements 中提及它。

    另外,建议使用 sdl2 (android new) 引导程序,因为 PyGame 正在进入后台并且自从在 android 上切换到 sdl2 后就没有真正维护。

    【讨论】:

    • 您好,我在要求中添加了 sqlite3,但是如何专门添加 fts? fts 或 fts3 不起作用。谢谢!
    • @Atoms 您需要为需求添加与pip install 相同的名称。如果它不起作用,它很可能不是纯 Python 包,因此您需要编写一个配方。
    • @KeeWeeUsr 好的,所以我解决了我的 recipe.sh 问题。是我没有使用android_new,而只是使用了android。现在我正在使用 android_new,我可以看到 sqlite 的配方默认启用 fts4。但是,它给了我一个“属性错误:上下文 objct 没有属性 hostpython”,我可以通过在我的要求(buildozer.spec)中添加 python2 来解决。该应用程序编译成功,但是当我在我的 android 手机上启动该应用程序时“没有模块 sqlite3”。我试图移动需求,但没有效果。有任何想法吗?我知道我很接近解决这个问题啊。谢谢!
    • @Atoms 你也需要把 sqlite3 放到需求中。
    • 好的,我让 sqlite 开始工作了。不,我还有另一个问题,但它与 sqlite 相关。感谢您的帮助:D
    【解决方案2】:

    好的,我在@KeeWeeUsr 的帮助下完成了这项工作

    1- 我没有在 buildozer 上使用正确的命令。 android 而不是 android_new ,这使用正确的 sqlite3 配方创建了正确的文件夹,其中 FTS4 默认启用。

    2- 即使在 buildozer.spec 中添加了 sqlite3,我也需要从项目中的所有 blacklist.txt 文件中删除 sqlite3(在第一次构建后创建)

    FTS4 现在可以完美运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-11
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多