You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin UI测试异常排查:手动安装APK测试时jarsigner别名参数错误

解决Xamarin UI测试中jarsigner别名参数导致的启动异常

问题回顾

你已经在Android模拟器上手动安装了目标APK,想要执行Xamarin UI测试且不允许重新安装应用,配置了AppInitializer.cs但运行测试时遇到了jarsigner的异常:

System.Exception : Failed to execute: C:\Program Files\Android\jdk\microsoft_dist_openjdk_1.8.0.25\bin\jarsigner.exe -sigalg SHA1withRSA -digestalg SHA1 -signedjar "C:\Users\user\AppData\Local\Temp\uitest\a-287A94...D0807\23248\SignedTestServer.apk" -storepass passw -keypass passw -keystore "C:\...\Certificate\Mycompany.keystore" "C:\Users\user\AppData\Local\Temp\uitest\a-287A...D0807\TestServer.apk" ""alias"" - exit code: 1
Only one alias can be specified
Please type jarsigner -help for usage

问题原因

仔细看你的KeyStore方法参数,你给别名加了额外的双引号:"\"alias\""。这会导致jarsigner命令里的别名变成""alias""(双重引号包裹),工具无法正确识别这个参数,误以为你传入了多个无效的别名,从而抛出错误。

解决方案

只需要去掉别名参数的额外双引号,直接传入别名的字符串即可。修改后的AppInitializer.cs配置代码如下:

string keyStore = @"C:\...\Certificate\Mycompany.keystore";
return ConfigureApp
    .Android
    .InstalledApp("com.myapk.test")
    .PreferIdeSettings()
    .KeyStore(keyStore, "passw", "passw", "alias") // 这里去掉了别名的额外引号
    .EnableLocalScreenshots()
    .StartApp();

额外检查项

  • 确保你的keystore路径、存储密码、密钥密码都是正确的
  • 确认alias确实是你keystore中存在的有效别名,可以通过keytool -list -v -keystore "C:\...\Certificate\Mycompany.keystore"命令验证

这样修改后,jarsigner就能正确识别别名参数,顺利签名TestServer.apk,你的Xamarin UI测试应该就能正常启动了。

内容的提问来源于stack exchange,提问作者Сергей

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 02:42:34