Android:错误 - 应用具有相同的打包不同签名

Android: Error - App has same packaged different signature

我遇到一个问题,android 工作室说

 Installation failed since the device has an application with the same package but a different signature. . . .. 

这是正确的,因为我最近签署了一个 APK 并上传到我的 Play 开发者控制台的测试区。

现在我正在尝试在本地调试它,默认情况下我相信所有 Android 项目都是由调试密钥库签名的,因此签名会有所不同。

处理此问题的最佳方法是什么?是否可以使用我的发布密钥签署我的调试版本,这里是否存在潜在危险?

如何在不失去调试等能力的情况下使用我的发布密钥库强制签署我的调试版本?

或者我应该继续卸载并重新安装不同的版本 - 这似乎是最糟糕的解决方法。 :-)

您可以在保留调试选项的同时使用您的发布密钥签署您的应用程序 - 您只需将您的发布密钥添加到 Android Studio(或者如果您在那里签署您的应用程序,则在命令行中指定它).

在 Android Studio 中,在项目浏览器中右键单击您的应用程序并打开模块设置。 Select 您应用的模块并单击 'Signing' 以确保列出了您的发布密钥库。然后在 'Build Types' 下,确保调试目标和发布目标共享相同的签名配置,并且调试目标的 debuggable 设置为 true。他们现在应该共享相同的密钥。

有关应用签名的更多信息,请参阅开发者文档 here

我还没有听说使用相同的密钥进行调试和发布有什么缺点,前提是私钥保持安全(阅读:不受版本控制)。

尝试在构建变体

中将调试更改为发布

更改 gradle 文件中的应用程序 ID 对我有用

    defaultConfig {
    applicationId 'com.example.app'
    }

就我而言,在升级 Android Studio 后,我删除了 $HOME/.android 文件夹,这使得 Android Studio 创建了一个新的 $HOME/.android/debug.密钥库。 复制旧的 debug.keystore 后它再次工作。

就我而言,通过添加 Android Studio 中给出的 SHA-1 和 SHA-256 证书指纹解决了问题(单击 AS [=] 右侧的 Gradle 17=],然后 运行 配置和签名报告)到您的 Firebase 项目设置->常规->SDK 设置和配置。

顺便说一句,这也解决了我在登录时遇到的神秘错误 Activity.RESULT_CANCELED。