xamarin 在运行的应用程序中未正确签署包(NO_CERTIFICATES)

s71maibg  于 2023-09-28  发布在  其他
关注(0)|答案(8)|浏览(129)

我正在开发xamarin表单应用程序,我得到了下面的错误时,在android模拟器上运行应用程序

>The package was not properly signed (NO_CERTIFICATES).
2>   at Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName)
2>   at Mono.AndroidTools.AndroidDevice.<>c__DisplayClass94_0.<InstallPackage>b__0(Task`1 t)
2>   at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
2>   at System.Threading.Tasks.Task.Execute()
2>Done building project "Modern.FM.Mobile.Android.csproj".
2>Build succeeded.
2>The package was not properly signed (NO_CERTIFICATES).
2>   at Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName)
2>   at Mono.AndroidTools.AndroidDevice.<>c__DisplayClass94_0.<InstallPackage>b__0(Task`1 t)
2>   at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
2>   at System.Threading.Tasks.Task.Execute()
d7v8vwbk

d7v8vwbk1#

我只是从我的Android项目中删除文件夹/bin中的所有文件并重新编译。

5sxhfpxr

5sxhfpxr2#

如果其他解决方案都不起作用,只需打开您的Android项目选项,然后转到Android包签名,并确保针对所有配置和平台取消选择“Sign the .APK file.”,如图所示:

ubbxdtey

ubbxdtey3#

安装Visual Studio 2017更新后出现此问题。在运行Visual Studio修复后,一切工作正常。

dfty9e19

dfty9e194#

我也有同样的错误,但对我来说,只是修复Visual Studio没有工作,所以我调查了一点,我发现这个问题与Java版本有关。
解决方案是卸载jre/jdk for java版本9,现在我可以再次部署了。

7fhtutme

7fhtutme5#

如果删除**/bin**文件夹没有帮助,请尝试以下操作:
关闭Visual Studio。
打开【Visual Studio安装程序】,在下拉菜单中选择【修复】

pvcm50d1

pvcm50d16#

2022更新答案
对于任何遇到此问题的人,如果删除/bin或/obj不起作用,请尝试以下操作:

  • 这可能是Git中分支合并或切换的问题,所以如果是这种情况,你应该做的是“git clean -fdx”来清理每个残留文件。
  • 如果上面的操作不起作用,请打开您的android“csproj”文件,检查DEBUG配置ONLY中是否将此标志设置为“False”。<AndroidKeyStore>false</AndroidKeyStore>

一旦您这样做了,它将禁用调试构建的签名,您将能够轻松地继续部署。

ovfsdjhp

ovfsdjhp7#

我有同样的问题,虽然我得到了这个错误一次只在模拟器和一次只在设备!正如@jcasas所说,我删除了冗余的Java 9,并将Visual Studio从15.6.6更新到15.7.0。

de90aj5v

de90aj5v8#

对于那些尝试使用以下设置的用户:

  • Visual Studio 2019(版本16.11.28)
  • 16.11.000.204
  • Xamarin.Android SDK 12.0.0.3
  • 带Hotspot的Eclipse Temurin JDK(8 u302-b 08(x64))

在调试过程中,由于以下编译错误之一而无法部署(到仿真器):

  • 软件包未正确签名(NO_CERTIFICATES)
  • java.exe已退出,代码为% 2
  • 无法加载签名者“signer #1”- java.io.IOException:密钥库格式无效

问题是(默认)C:\Users\%USERNAME%\AppData\Local\Xamarin\Mono for Android\debug.keystore文件在针对Android API Level 30或更高版本时无法与apksigner正常工作。
要使收支平衡,请遵循以下步骤:
1.在VS >卸载.Android项目>编辑项目文件
1.添加以下行:<AndroidUseApkSigner>true</AndroidUseApkSigner>Debug PropertyGroup(如本文最初所述)
1.重新加载项目
1.删除C:\Users\%USERNAME%\AppData\Local\Xamarin\Mono for Android\debug.keystore文件
1.清洁解决方案>重建解决方案
1.开始调试

相关问题