M1芯片使用Buildozer打包Kivy安卓应用时toolchain命令执行失败
Kivy M1芯片安卓打包报错解决方案
你当前的报错属于M1芯片架构下python-forandroid交叉编译的常见兼容问题,按以下步骤排查即可解决:
- 第一步:匹配稳定版NDK
M1芯片打包安卓适配最稳定的NDK版本为r25b,不要使用r23以下或者r26以上的NDK版本,修改buildozer.spec配置文件中的对应参数:android.ndk = 25b android.ndk_api = 21 android.sdk = 24 - 第二步:修正打包架构参数
你当前设置的armeabi-v7a为32位架构,M1原生为arm64架构,交叉编译时优先选择arm64架构可大幅降低报错概率,修改配置:android.arch = arm64-v8a # 如需兼容32位安卓设备可改为 android.arch = armeabi-v7a,arm64-v8a - 第三步:清理旧缓存重新构建
之前构建失败产生的缓存会导致重复报错,执行以下命令清理后重新打包:buildozer android clean buildozer android debug - 第四步:适配Java版本
若以上操作仍报错,可将Java版本从1.8.0升级到Java11 arm64版本,当前python-forandroid对Java11的M1架构兼容性更好,注意配置JAVA_HOME环境变量指向对应Java安装路径。 - 第五步:更新构建工具版本
确保本地的buildozer和python-forandroid为最新版本,执行升级命令:pip install --upgrade buildozer python-forandroid
内容的提问来源于stack exchange,提问作者Ulto 4
相关产品推荐
相关产品推荐

