fireholder.github.io

伪文艺女青年,状高冷,话少爱热闹


Blog | Archive | About

kivy生成apk

24 Mar 2017 | Python

kivy 是 python 的一个UI库,可以在多平台运行。这里用 python-for-android (p4a)生成 基于kivy的android apk。

用 python-for-android 0.1 ducumentation 中给的官方例程运行会报错。

p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My application" --version 0.1 --bootstrap=sdl2 --requirements=python2,kivy

error 1

根据报错信息指定 android-sdk 和 android-ndk 的安装目录和版本号以及所使用的 api 。此处我使用的android api 是19 , ndk 是 r14。

    --sdk_dir PATH as an equivalent of $ANDROIDSDK
    --ndk_dir PATH as an equivalent of $ANDROIDNDK
    --android_api VERSION as an equivalent of $ANDROIDAPI
    --ndk_ver PATH as an equivalent of $ANDROIDNDKVER

error 2

在末尾加上

--arch=armeabi-v7a

error 3

继续报错,显示

Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 12

stackoverflow 上有解释说是使用的 sdk 的版本问题,要修改sdk版本, 修改


$HOME/.local/share/python-for-android/build/bootstrap_builds/sdl2-python2/AndroidManifest.xml

将其中的 minSdkVersiontargetSdkVersion 由 12 修改为 19。

error 4

报错


Android NDK: Module main depends on undefined modules: python_shared

参照报错信息,修改


$HOME/.local/share/python-for-android/build/bootstrap_builds/sdl2-python2/jni/src/Android.mk

将其中的 python-shared 去掉。

error 5

继续报错

name is too long

stackoverflow 上的解释是项目目录中含有别的文件,清除别的文件后仍报错。 修改


/usr/lib/python2.7/tarfile.py

将其中的LENGTH_NAME 由 100 改为 1000 。

error 6

后又报错

linkname is too long

同理,修改上述文件,将 LENGTH_LINK 由 100 修改为 1000 。

完整命令:

p4a apk --private $HOME/code/myapp --package=org.example.test --name "test" --version 0.1 --sdk_dir /home/xwt/.buildozer/android/platform/android-sdk-20 --android_api 19 --ndk_dir /home/xwt/android-ndk-r14 --ndk_ver r14 --bootstrap=sdl2 --requirements=python2,kivy --arch=armeabi-v7a

最后,终于可以生成apk。

参考资料 : python-for-android 0.1 ducumentation
《 kivy documentation Release 1.9.2-dev0》

comments powered by Disqus

Older · View Archive (56)

无刷电调的使用

大四轴一般选用无刷电机,需要电调驱动。我使用的是 新西达 HW30A ,支持BEC输出。

Newer

PWM 详解

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

PWM 详解