apksigner所属官方Android仓库、获取渠道及运行问题咨询
apksigner 官方来源说明
- apksigner 是谷歌官方提供的APK签名/校验工具,从 Android SDK Build-Tools 24.0.0 版本开始正式随组件分发,没有独立的官方单独安装包。它不会被包含在Platform Tools、独立Command Line Tools或Android Studio主程序目录中,之前检索不到基本是找错了对应组件路径。
- 内置apksigner的Android SDK Build Tools 24.0.3版本,唯一官方获取渠道是Android SDK Manager:打开SDK管理器的SDK Tools分类页,勾选显示包详情,在Build-Tools分支下找到24.0.3版本勾选安装即可,不要使用非SDK管理器分发的零散压缩包,这类包普遍缺失依赖文件,极易出现运行异常。
零散版本运行无输出的故障原因与解决方法
你拿到的单独压缩包版本运行无任何反应,是两个核心问题导致的:
- 批处理脚本的Java环境检测逻辑,依赖完整SDK目录下的
find_java.bat脚本做Java路径探测,如果你解压的压缩包没有保留完整的SDK目录结构、单独提取了apksigner相关文件,脚本找不到Java路径就会直接静默退出,不会抛出任何错误提示。 - 24.0.3版本的apksigner启动脚本使用了
-Djava.ext.dirs启动参数,该参数在Java 9及以上版本中已被彻底移除,如果你本地安装的是高版本JDK,哪怕路径配置正确也会启动失败,且脚本没有做错误捕获,失败后不会有任何输出。
可以按以下方案修复使用:
- 优先推荐直接通过SDK Manager安装最新版Build-Tools,新版apksigner已经修复了高版本Java兼容问题,不需要额外配置Java 8环境,同时向下兼容所有版本APK的签名校验需求,不用特意找24.0.3的老旧版本。安装完成后apksigner默认存放在
<SDK根目录>/build-tools/<对应版本号>/路径下,可直接调用。 - 如果一定要用24.0.3版本,先安装JDK 8并配置好环境变量,不要单独解压零散压缩包,通过SDK Manager完整安装该版本Build-Tools,保持SDK目录结构完整即可正常运行。
- 不想安装完整SDK的话,可以手动修改批处理脚本:把脚本中Java路径探测的部分直接替换为你本地java.exe的绝对路径,再把最后一行启动命令里的
-Djava.ext.dirs="%frameworkdir%"参数替换为-cp "%jarpath%;%frameworkdir%/*",指定主类为com.android.apksigner.ApkSignerTool即可正常启动,示例命令如下:
"C:\Program Files\Java\jdk1.8.0_301\bin\java.exe" -Xmx1024M -Xss1m -cp "C:\your\apksigner\path\apksigner.jar;C:\your\apksigner\path\*" com.android.apksigner.ApkSignerTool verify --verbose --print-certs <目标APK文件路径>
内容的提问来源于stack exchange,提问作者srhslvmn
相关产品推荐
相关产品推荐

