在Eclipse中开发Android:如何签名targetSdkVersion≥31的APK
核心问题是Android 12(API 31)要求APK必须采用APK Signature Scheme v2或更高版本签名,而旧版Eclipse ADT插件默认只支持v1签名,导致签名后的APK被判定为格式损坏。以下是可行的解决步骤:
升级ADT插件到兼容版本
旧版ADT不支持v2/v3签名,需要更新到ADT 26.0.0及以上版本(推荐最后适配Eclipse的ADT 26.0.4)。操作:打开Eclipse的Help > Install New Software,添加源https://dl-ssl.google.com/android/eclipse/,选择Android Development Tools完成更新。导出签名APK时启用v2签名
更新ADT后,在导出签名APK的流程末尾,会出现「Signature Versions」选项,务必勾选V2 (Full APK Signature),至少保证启用v2签名(如需更安全的签名可同时勾选V3)。手动用apksigner补签(ADT导出失效时备用)
如果Eclipse内置的导出签名功能仍有异常,可以先导出未签名APK,再用Android SDK自带的apksigner工具手动签名:- 定位到Android SDK的
build-tools/[对应版本]/目录(比如build-tools/33.0.2/),找到apksigner工具 - 执行命令:
apksigner sign --ks 你的密钥库路径.jks --ks-key-alias 密钥别名 未签名的APK路径.apk
执行完成后生成的APK会符合targetSdk≥31的签名规范。
- 定位到Android SDK的
匹配对应版本的Build Tools
右键项目 →Properties > Android,将Build Tools Version设置为31.0.0或更高版本,避免因构建工具版本过低导致APK结构不符合要求。
内容的提问来源于stack exchange,提问作者Alexey Ignatyev

