【问题标题】:Python for Android : apk stuck on loading screen适用于 Android 的 Python:apk 卡在加载屏幕上
【发布时间】:2016-06-11 02:52:35
【问题描述】:

我正在尝试使用 Python-For-Android 的工具将我的 python 3 代码转换为 apk。他们最近添加了对 python 3 的支持,尽管它是实验性的。

值得注意的是,我的整个程序是用纯 python 编写的,没有使用 kivy 框架,它的图形界面都是在 tkinter 中完成的,除了已经使用 python 的模块之外,没有使用任何额外的模块。

我已编译存储在以下目录中的程序(用户界面引用“大脑”)

package\
    __pycache__
    __init__.py
    Solver.py
main.py
__pycache__

使用 python-for-android 然后我得到了结果 apk,顺便说一下,这是在 debian 上,如果它有什么不同的话,我已经安装了,到目前为止我的手机上没有任何问题...

只有当我启动应用程序时,它已经安装好,它会进入一个白色的加载屏幕,加载在左上角,但永远不会超过它

我在某处读到它是因为 Java 错误,我知道这可能已用于编译程序...

我的问题是,在所有这些背景知识之后,由于我对 Java 不太了解,我该如何解决它?

编辑:我在虚拟机上运行了它,但出现错误...请参阅 here

编辑 2:Javac warnings whilst compiling

【问题讨论】:

    标签: android python kivy


    【解决方案1】:

    这不是 python-for-android 的受支持使用。为了让您的应用程序正常运行,您需要与可用的引导程序之一进行交互 - sdl2、pygame 或 webview。 Kivy 知道如何与 sdl2 和 pygame 引导程序交互,而 webview 引导程序只使用 Android Webview 来显示来自本地 Web 服务器(flask)的内容。如果你想使用 Tkinter,你需要为它创建一个引导程序(p4a 本身中的一个新引导程序,或者一些将 Tkinter 连接到现有引导程序(如 sdl2)的 python 代码)。

    【讨论】:

    • 哦,我明白了,所以基本上解决这个问题的方法是在 Kivy 中重新编码图形?如果是这样,我怎样才能在其中实现我的求解器部分?另外,如果这不是一个选项,我应该从哪里开始创建引导程序?
    • 另外,请参阅编辑以获取新信息...在虚拟机上运行它并遇到错误
    • Tkinter 不知道在 Android 上该做什么。您必须提供一些方法让它在屏幕上呈现并接受来自 Android 的输入事件。对于都使用 OpenGL 的 SDL2 和 Pygame,我们通过提供某种形式的 GLSurfaceView 并将 Java 活动类接收到的输入事件传递给适当的 SDL2 和 Pygame 方法来处理这个问题。 Webview 只是使用如前所述的 Webview。至于错误,您运行在不支持 ARM 或有错误 ARM 转换层的 Android 模拟器上。
    • 哦,好吧,我明白现在发生了什么!谢谢。使用的模拟器是 Android x86,因为 SDK 安装在我一直在开发的 linux 虚拟机上,它无法工作,因为可用资源太多,所以我只需要获取 SDK 的副本我的本机系统上的模拟器。但是感谢您的建议...您对将python编译成apks的替代方法有什么想法吗?
    • p4a 为 ARM 构建所有应用程序,因此如果没有工作的翻译层,它们将无法在 x86 模拟器中工作。您可以在 ARM 模拟器中运行它们(尽管 ARM 模拟器速度较慢 - 我通常在物理设备上进行所有测试)。我知道还有一些其他项目可以让你创建 Python Android 应用程序,但我不知道有没有人会做你想做的事情而不需要将 Tkinter 连接到 Android 的相同工作。
    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2019-10-18
    • 1970-01-01
    相关资源
    最近更新 更多