Android Studio:由于APK未签名,安装失败

15

我正在尝试在模拟器中运行我的应用程序,但一直收到以下错误信息:

 

安装失败,因为 APK 要么没有签名,要么签名不正确。   如果这是一个基于 Gradle 的项目,则请确保在 Gradle 构建脚本中指定签名配置。

我正尝试使用调试设置运行该应用程序,因此不需要对应用程序进行签名,因为在构建时会给予其临时签名。


请注意,[tag:signature]标签不正确,因为它是关于方法签名的。 - Maarten Bodewes
我认为这是一个bug,我遇到了同样的问题但仅在2个模拟器中出现,在其他模拟器中正常工作,更换模拟器作为临时解决方案。 - D4rWiNS
7个回答

8
这种情况通常发生在您安装了在另一台计算机上生成的相同应用程序时。即使未签名的apk也有一个签名,因此您的手机会感到困惑,不知道为什么您要安装在另一台计算机上生成的具有相同包名称的应用程序。
进入设置->应用程序,然后在列表中找到该应用程序,并清除其数据并卸载它。
然后再尝试安装。这样就可以解决问题了。

该应用程序从未安装在模拟器上,在设置下的模拟器应用中也找不到它。 - ImpromptuMusic
你安装了同样包名的其他应用吗? - Alex K
@ImpromptuMusic 尝试查看是否安装了具有相同包名的其他应用程序。 - Alex K

6
以下两种方法可解决此问题:
  1. 将构建变量更改为debug cnange_built_variant
  2. 定义应用程序的签名配置 signingConfigs
第一种解决方案适用于在调试模式下构建应用程序。但是,一旦您准备发布应用程序到Google Play商店,您需要走第二种方式。
了解更多信息-> 签署您的应用程序 希望这可以帮助大家!

那就是解决方案!我为我的应用程序创建了一个新的版本,所以我错误地尝试运行发布版本,这需要一个签名版本的任务。解决方案只是尝试执行调试版本,它起作用了!谢谢Rupesh! - Bruno Morais

3

昨晚我也遇到了相同的问题。在调试过程中,我的应用之前已经安装了几周,我已经将其删除,但仍然出现错误,无法再次安装。我通过进入AVD管理器并从那里清除用户数据来解决了这个问题。之后安装和调试都进行得很好。


0

可能已经安装了带有证书的当前应用程序

卸载它并重试


0
我基本上是按照Alex K的答案解决了这个问题,但不知道该在哪里查找“设置”(完全新手!)。
因此,前往AVD管理器(工具栏中的移动图标)并单击最右侧的箭头,会出现一个小菜单,在此选择“Wipe Data”。
您确实需要先关闭模拟器。

0

我尝试过的方法:

这些方法都没有解决问题。 最后,我手动执行编译/签名步骤,直到找到罪魁祸首:我的资产文件夹中的一个文件是由MacOSX生成的“Icon?”

为了检测它,我按照这里的说明构建了未签名的APK并手动签名: https://developer.android.com/studio/publish/app-signing#sign-manually

当我运行第3步(apksigner)时,我收到了一个异常消息,因为文件..\folder\folder\Icon?无法签名apk。

我明白发生的事情是Android Studio没有捕获异常并尝试将未签名的应用程序部署到模拟器上。

一旦我删除了该文件并再次尝试,我就不再有这个问题了。 (找到根本原因真是太痛苦了...)

所以,第一步:

  • 运行标准检查(清除缓存...)
  • 如果您有MacOSX,请检查您的一个或多个文件是否为“Icon?”
  • 第2步-手动运行步骤

-1
如果您在调试模式下仍然遇到此错误,请按照以下步骤操作:
  1. 清理您的项目
  2. 重新运行

这对我在Android 2.2 Beta上有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接