无需上传密钥:ADB本地USB调试Kivy应用步骤及安装报错解决
Kivy应用本地ADB调试无上传密钥解决方案
问题翻译与说明
用户执行ADB安装命令时出现如下错误:
执行命令:
adb install -r bin/apk/splits/base-armeabi_v7a.apk
输出:
Performing Streamed Install
adb: failed to install bin/apk/splits/base-armeabi_v7a.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: 无法收集/data/app/vmdl327565702.tmp/base.apk的证书:无法从/data/app/vmdl327565702.tmp/base.apk收集证书:尝试获取空数组的长度]
这个错误是因为Android要求所有APK必须签名,本地调试只需用调试密钥签名,无需上传Play Store的上传密钥。以下是本地调试的分步操作:
本地调试分步操作指南
1. 生成调试签名密钥
使用JDK自带的keytool生成调试密钥(确保JDK已配置环境变量):
keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
执行后按提示填写信息(可直接回车使用默认值),当前目录会生成debug.keystore文件。
2. 配置Kivy项目的签名参数
修改项目根目录的build.spec文件,添加调试签名配置:
[app] # 保留原有配置,新增以下内容 android.signing.debug_store = /你的路径/debug.keystore android.signing.debug_store_pass = android android.signing.debug_key_alias = androiddebugkey android.signing.debug_key_pass = android
将/你的路径/debug.keystore替换为实际的密钥文件路径。
3. 重新编译并部署调试APK
用buildozer一键完成编译、签名、部署:
buildozer android debug deploy run
该命令会自动用调试密钥签名APK,直接安装到连接的USB设备并运行。
4. 手动签名已编译的APK(可选)
如果已有未签名的APK,用Android SDK的apksigner手动签名:
apksigner sign --ks debug.keystore --ks-pass pass:android --key-pass pass:android /你的APK路径/base-armeabi_v7a.apk
签名完成后再执行安装:
adb install -r /签名后的APK路径/base-armeabi_v7a.apk
关键提示
- 调试密钥是Android官方默认的本地调试专用密钥,密码均为
android,无需复杂配置。 - 不要混淆调试密钥和Play Store上传密钥,二者用途完全不同。
- 本次报错核心是APK未签名或签名无效,用调试密钥签名即可解决。
内容的提问来源于stack exchange,提问作者Alexey Orlov
相关产品推荐
相关产品推荐

