Xamarin 应用程序部署失败,错误"apksigner.BAT"退出,代码为 2
。JDK 版本 1.8.162
JDK 降级到 1.8.131。
我遇到了 1.8.161和 1.8.162 的问题。
如果您使用的是 JDK 9,则降级到 JDK-8
JDK 9.x为我修复了它。
Android Setup指向JDK 8.x没有任何区别。必须删除JDK 9.x才能解决此问题。
我在Visual Studio上构建Xamarin.Android应用程序时遇到了同样的错误。
这是由于将我的密钥库从 JKS 迁移到 PKCS12 格式引起的,因为
keytool.exe -list -v -keystore <path to my keystore>
一直给我以下Warning: The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format
.
迁移是个坏主意,似乎apksigner.BAT
要求密钥库采用 JKS 格式。我通过恢复到我的debug.keystore.old
解决了这个问题
除了上面正确的JDK相关答案外,还要尝试检查PATH变量。必须有最新安装的JDK版本。经过几天检查不同的IDE,机器和设备,解决了我的问题。
正如其他人所发现的那样,这是当您安装了较新版本的Java(例如JDK 9(时发生的冲突。
这实际上不是必需的,但这里有一个解决方法:使用以下内容创建一个新的批处理文件(根据需要更新路径(。 您希望设置JAVA_HOME以便它指向旧版本的 Java。
Xamarin.bat:
@echo off
set JAVA_HOME=C:Program Files (x86)Javajdk1.8.0_161
set PATH=%JAVA_HOME%bin;%PATH%
cd "C:Program Files (x86)Microsoft Visual Studio2017ProfessionalCommon7IDE"
start devenv.exe
我最近从客户那里得到了一个旧诗句。它在Visual Studio for Windows
中给出了同样的error
.Visual Studio for Mac
,它without displaying
任何Error Message
都给出了 1 个错误。
behind
error
的原因是客户指定了一个signing key
,该在我的system
上not available
。
在Mac
上,我只需要uncheck
apk signing
选项。
在Windows
上,我必须edit
csproj
文件才能删除signing key
.现在,项目已成功生成。
,从我当前的构建工具目录中删除(或重命名(apksigner.bat(...AppData\Local\Android\android-sdk\build-tools\28.0.0-rc1\apksigner.bat(
之后,清理了 obj 和调试/发布目录->重建->部署