python-for-android(p4a)安装使用

文章目录

    • 一、文本的阅读方式
    • 二、开始安装前
    • 三、安装时
    • 四、编译时
    • 五、补救措施

一、文本的阅读方式

p4a官方教程地址:https://python-for-android.readthedocs.io/en/latest/quickstart
以下文章内容将基于官方教程进行补充修改,建议将本文与教程同步观看。一下问题均是在本人安装过程中出现,可能不能完全覆盖所有问题,欢迎大家补充。

虚拟机软件:Vmware Workstation15.5
虚拟机:Debian10

二、开始安装前

1、请先在安装虚拟机之前,将虚拟机硬盘大小至少设置到40G,根据实际安装过程,默认的20G是不够的。如果你已经安装好虚拟机了,请参考这篇文章进行扩容https://blog.csdn.net/weixin_43887873/article/details/107821346
如果此时已经发生虚拟机硬盘无可用空间时,请向下参考补救措施

2、不建议使用Debian默认的Gnome桌面,建议使用xfce桌面,请参考这篇文章进行安装https://blog.csdn.net/newcong0123/article/details/106187849

3、有些教程会建议大家使用代理,本人并不建议,使用正常的网络环境即可,如果有失败或者卡住,多尝试几次即可

4、写给对于Linux不熟悉的伙伴,Linux对于不同用户的空间是不同的,所以除了安装软件依赖以外,请不要使用root用户,安装p4a时也最好不要使用root用户

5、最新版本p4a已经不支持python2,仅支持3,所以如果使用2,请在安装p4a时注意指定版本

三、安装时

1、建议将其他内容配置完后,再正常按官方文档安装p4a

2、在较新版本Debian中,由于安全原因,已经将openjdk-8-jdk将官方下载仓库中移除,故我们将使用第三方java。所以在安装依赖时,请使用以下代码(debian):

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y build-essential ccache git zlib1g-dev python3 python3-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 unzip ant ccache autoconf libtool libssl-dev
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

3、NDK安装
由于google问题,请访问https://developer.android.google.cn/ndk/downloads/index.html,这里建议大家选择最新的LTS版本,在之后编译中可能会有警告,但是实测不会出错,NDK的配置按照官方文档即可

4、SDK安装
这里对于SDK的设置不建议使用官方教程,因为我们既不需要Android Studio,同时command-only版本并不是十分好配置。
请访问https://www.androiddevtools.cn/,并在下方SDK Tools有版本号(写这篇文章时是24.4.1,请大家类比一下即可)的一栏中选择Linux进行下载。
建议放到与NDK同一目录下解压,然后在tools文件夹下打开终端,输入:

./android

接着选择最新版本build-tools(注意是第一个文件夹中的,不是第二个),并同时选择下方Android8.1(api 27)这样与官方建议版本一致,减少出错概率

5、环境变量配置
*注意:若此时是root用户,建议使用普通用户,否则之后所有过程均需要在root用户下进行,可能会导致对软件后期改写出现不必要的麻烦
输入命令:~/.bashrc
按照官方文档方式配置即可,需要注意的是,在最新版本p4a中已经不需要NDKAPI变量,可以不配置该变量

6、此时可以安装p4a了,如果不出意外,那么应该就已经安装结束了

四、编译时

1、编译时应当包含以下参数(p4a apk后添加以下参数)

--private#程序所在文件夹,名称必须为main.py
--package#编译后java包名称,通常在调试时使用
--name#安装后出现在桌面的名称
--version#版本号
--permission#权限(重要:举个例子,如果程序需要联网就必须加入INTERNET权限,如果没有添加必要权限,后期程序可能无法运行)
--requirements=python3,kivy#以及你的程序引入的库(重要:如果没有导全,会导致后期软件闪退)
----bootstrap=sdl2#引导设置,通常是sdl2,如果webview程序,请改成webview

2、如果所写程序需要联网,可能会出现javax.net.ssl.SSLException,请参考https://blog.csdn.net/xingchenxuanfeng/article/details/80610835

3、编译配置kivy时可能会出现找不到GL,请安装libgles2-mesa-dev

4、既便于自己调试kivy,又避免编译时错误,建议安装sdl

sudo apt-get install libsdl1.2-dev
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev
sudo apt-get install libsdl-gfx1.2-dev

5、调试程序时,可能会出现Unable to get a Window, abort.,请先确保自己安装了sdl2,网上的方法都差不多(参考:方法),但是实际操作中发现并没有解决问题,这里可能是因为kivy是基于pygame的,所以需要在python中安装pygame模块

6、直接在终端中输入p4a可能会出现找不到命令的情况,大概率p4a是在/home/用户名/.local/python3/bin(因为python版本不同,大家请按照自己的具体情况更改)中,将此路径添加到环境变量即可,也可输入whereis p4a查找路径,注意此时的路径不是p4a执行文件路径,应当是此路径向上两个目录下的bin文件夹下

五、补救措施

情况一:由于硬盘已满等原因,普通用户已经无法登陆进桌面,此时请使用账户名为root,密码为安装系统时设定的root密码进入桌面,然后排查解决问题,之后再用普通用户登陆即可

情况二:硬盘已满需要扩容。关闭虚拟机,在虚拟机磁盘空间设置中选择扩容,更改容量后开启虚拟机。首先登陆进系统桌面,若此时已经安装过自己会使用的磁盘管理工具请按照已装的工具进行磁盘重新划分。若没有,请打开默认的软件管理器,卸载几个自己不需要的软件,然后按照教程进行划分

免责声明:本文中的内容仅可用于个人学习用途,如用于其他用途造成任何损失的,均与作者无关,作者不予任何赔偿。根据本文内容进行实际操作的,均属于个人行为,造成的任何损失,均与作者无关,作者不予任何赔偿。

你可能感兴趣的:(p4a安装使用,python,android)