【问题标题】:Export a Python script to an Android executable (.apk) with Python-For-Android使用 Python-For-Android 将 Python 脚本导出到 Android 可执行文件 (.apk)
【发布时间】:2014-06-12 12:37:00
【问题描述】:

我正在尝试使用 Python for Android 将我的 Python 脚本导出到 Android 可执行文件 (.apk)。

http://python-for-android.readthedocs.org/en/latest/toolchain/#how-does-it-work

https://github.com/kivy/python-for-android/

在发行版中(默认为 dist/default),你有一个工具 命名为 build.py。这是将为您创建 APK 的脚本

我已按照所有步骤操作,但我有一个问题:创建的 dist/default 文件夹不包含任何 build.py。是空的。

有什么问题?我该如何解决?请帮忙!

【问题讨论】:

  • 如果您使用的是 linux,您应该查看 buildozer。它使整个过程干净利落:github.com/kivy/buildozer
  • 我尝试了 Buildozer,但是当我使用 buildozer android debug 时,我得到了 # Command failed: ./distribute.sh -m "kivy" -d "myapp"... 有人可以帮帮我吗?
  • 也许可以查看项目文件夹中的 buildozer.spec 文件,并确保 kivy 未列为要求(例如:requirements = kivy),如果是,请注释掉该行。如果这不起作用,我会在 kivy 用户支持组中提问。尽管您没有使用 kivy,但他们似乎对那里的 buildozer 了解很多
  • 所以,Buildozer 工作正常,我已经重新安装了它。现在,当我尝试编译我的脚本时,我收到此错误 pastebin.com/VCLb4XtH 。我该如何解决?感谢您的帮助

标签: android python linux apk


【解决方案1】:

所以,基本上,您正在使用 buildozer,它现在正在工作。再次查看 buildozer.spec 文件。应该有以下几行:

# (str) Application versioning (method 1)
version.regex = __version__ = '(.*)'
version.filename = %(source.dir)s/main.py

# (str) Application versioning (method 2)
# version = 1.2.0

你想要做的,我相信(因为我不得不这样做),就是把它们改成这样:

# (str) Application versioning (method 1)
# version.regex = __version__ = '(.*)'
# version.filename = %(source.dir)s/main.py

# (str) Application versioning (method 2)
version = 1.2.0

看到我已经注释掉了顶部的两行,并取消了底部的注释。 (我自己还没有费心更改'1.2.0',所以不知道这是否有区别。它不应该。)问题似乎是buildozer在你的py文件中寻找一行,@ 987654323@,找不到的时候报错。我尝试将此行添加到我的 python 中,但它仍然不起作用。然而,这种改变确实奏效了。

另外,请尝试在打开详细信息的情况下运行您的构建,这样您就可以准确地看到导致任何错误的原因,例如:

sudo buildozer --verbose android debug deploy run

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 2011-10-23
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多