目标:
在Ubuntu上配置Android打包环境
环境配置:
Python使用2.7的,尽量不要用3,否则会出现很多无法解决的问题。
Linux使用的是Vmware-workstation pro下的Ubuntu16.04。
步骤说明:
1. 首先安装有Python2.7,并确认命令行下可以执行python命令。在Ubuntu系统上一般都自满足了。
2. Kivy配置
kivy是一套跨平台(windows,linux,osx,android,ios)的GUI开发解决方案。
使用包管理器进行安装。(之前尝试过其他的方式,可是都没有安装成功)
(1)根据喜好来选择一个PPA源添加到系统里:
sudo add-apt-repository ppa:kivy-team/kivy #稳定版
sudo add-apt-repositoryppa:kivy-team/kivy-daily
如果用于长期使用追求稳定,推荐使用稳定版,二者不要同时添加,避免出现混乱和错误。在这里我使用的是稳定版。
(2)用包管理器更新一下包列表:
sudo apt-get update
(3)更新列表完毕后,就可以安装了:
sudo apt-get install python-kivy #Python2用这个来安装
这时kivy已经安装成功了,可以用下面代码测试。
import kivy
kivy.require('1.9.1')
from kivy.app import App
from kivy.uix.button import Button
class test(App):
def build(self):
return Button(text='hello world')
if __name__ == '__main__':
test().run()
3. 安装必要的依赖包
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libssl-dev libffi-dev
pip install cython==0.23
sudo apt-get install virtualenv
sudo apt-get install -y build-essentialccache git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386zlib1g:i386 openjdk-8-jdk unzip ant ccache autoconf libtool
Cython使用0.23,高版本会有问题
4. 安装SDK、NDK
直接下载解压到目录下即可,需要注意他们的路径。这里SDK使用的是24.4,NDK使用的是r10e。之前下载的个别版本SDK出现过找不到android.shell文件的问题,因此会出现无法生成sdk manager。对于NDK,强烈建议使用r10e,官方文档中也是r10e,否则在后期的编译阶段会有很多错误无法解决。
(1)解压完成后就可以配置环境变量
sudogedit ~/.bashrc
在文档末尾处添加
export ANDROIDSDK="/home/st/Android/android-sdk-linux" #根据自己SDK的路径和文件名进行设置
export ANDROIDNDK="/home/st/Android/android-ndk-r10e"#根据自己NDK的路径和文件名进行设置
export ANDROIDAPI="19" # Minimum API version your application
require
export ANDROIDNDKVER="r10e" # Version of the NDK you installed
保存后退出
source ~/.bashrc
(2)cd进入SDK文件夹,进入tools
cd /home/st/Android/android-sdk-linux/tools
./android
安装必要的sdk build tools 和API。(在程序运行后期也会提示缺少哪一种版本的API和工具,到时再安装也可以)
5. 安装python-for-android
pip install python-for-android
6. 开始打包(根据自己文件的路径修改对应路径及名称)
p4a apk --private/home/st/Android/code --package=org.myapp --name "My application"--version 0.1 --bootstrap=sdl2 --requirements=python2,kivy
会提示找不到private.mp3文件,(这是p4a的一个bug),所以需要手动使用touch命令创建这两个文件(一定是touch命令创建的,目录可以用mkdir创建),在编译过程中会出现使用了那个目录下的dists进行提示,需要在对应dists目录下的/src/main文件下创建。
~/python-for-android/dists/myapp/src/main/assets/private.mp3
~/python-for-android/dists/myapp/src/main/res/drawable/icon.png
同理也需要创建一个icon.png
在执行p4a apk的过程中会安装一些需要用到的依赖性包等,静静等待。
到这里一个.apk文件就生成了
Android端运行界面
参考链接
使用包管理器进行安装
https://github.com/cycleuser/Kivy-CN/blob/master/01-Kivy-Installation.md
ubuntu配置android打包环境
https://blog.csdn.net/ghking1/article/details/79609830
python-for-android
https://python-for-android.readthedocs.io/en/latest/quickstart/
No Use
but meaningful --kivy折腾笔记
http://www.cnblogs.com/lanqie/p/8359231.html
kivy踩坑记
https://blog.csdn.net/ghking1/article/details/78697645
https://kivy.org/docs/guide/packaging-android.html
input:
p4a apk--private /home/st/Android/code --package=org.myapp --name "Myapplication" --version 0.1 --bootstrap=sdl2 --requirements=python2,kivy