前言
总结了在 Ubuntu 系统上使用 Buildozer 构建 Kivy 项目为 Android 应用过程中遇到的问题以及相应的解决办法。
错误
1. Buildozer 构建环境配置
问题描述: 在 Buildozer 的 Android 构建过程中,需要安装并配置 Android SDK 和 NDK 以及其他依赖项,如 Java JDK 等。系统初始配置导致了部分依赖项缺失或版本不兼容的问题。
解决方法:
- 安装必备依赖项:确保系统具备必要的依赖项,如
openjdk
、libffi-dev
、curl
等。命令如下:sudo apt update sudo apt install openjdk-17-jdk build-essential libffi-dev zlib1g-dev
- 设置 Android SDK 和 NDK 路径:Buildozer 自动配置 SDK 和 NDK,但确保
buildozer.spec
中的路径正确。
2. SDL2 子模块克隆失败
问题描述:
在克隆 SDL2
的某些依赖库时,访问 skia.googlesource.com
子模块失败,导致 SDL2 构建过程出现中断。
解决方法:
- 使用 VPN 或网络代理:由于该网址可能被区域性限制,使用 VPN 能够绕过网络限制。
- 更换镜像源:手动将
skcms
库替换为 GitHub 镜像源:然后重新启动构建过程。cd /home/rongzuoliang/gptrt/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/ rm -rf skcms git clone https://github.com/your-mirror/skcms.git
3. Gradle 版本与 Java 版本不兼容
问题描述:
Buildozer 在使用 gradle
构建时,提示所需的 com.android.tools.build:gradle
版本不支持当前的 Java 版本。Java 11 版本不满足 Gradle 插件 8.1.1 的要求,必须升级到 Java 17。
解决方法:
-
安装 Java 17:
sudo apt install openjdk-17-jdk
-
设置 Java 17 为默认 Java 版本:
sudo update-alternatives --config java
在选项中选择 Java 17。
-
验证 Java 版本:
java -version
确保输出显示的是 Java 17。
4. 清理缓存和重试构建
问题描述: 在多次更改环境后,构建过程可能会因为缓存中的旧设置而失败。
解决方法: 使用 Buildozer 的清理命令删除之前的构建缓存,确保新的配置能够生效。
buildozer android clean
buildozer android debug
总结
通过逐步解决依赖项安装、网络连接、Java 版本兼容性和构建缓存问题,最终成功完成了 Android 应用的构建。此过程涉及到的关键步骤包括正确配置依赖项、确保网络连通性以及调整 Java 和 Gradle 的版本兼容性。