【问题标题】:Installation failed since the APK was either not signed安装失败,因为 APK 未签名
【发布时间】:2026-01-31 03:45:01
【问题描述】:

我刚刚将我的 Android Studio 从 1.5 升级到 2.2,现在运行我的应用程序时出现错误:

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

我已经用谷歌搜索过,但没有任何效果,我的 gradle 文件是:

...
android {
    signingConfigs {
        myapp_signed {
            keyAlias 'mkey'
            keyPassword 'pwd'
            storeFile file('.../_keystore.jks')
            storePassword 'pwd'
        }
    }
    compileSdkVersion 22
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId '...'
        minSdkVersion 14
        targetSdkVersion 22
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.myapp_signed
        }
    }
    productFlavors {
    }
}
...

有人知道如何解决这个问题吗?就在我得到这个错误之前,我得到了另一个错误,它说:

警告:需要 Gradle 版本 2.10。当前版本是 2.2。如果 使用 gradle 包装器,尝试编辑 distributionUrl C:\Users\blahblah\myproject\gradle\wrapper\gradle-wrapper.properties 到 gradle-2.10-all.zip

我这样解决了"Gradle Version 2.10 is required." Error

编辑: 即使我将构建变体切换回调试,卸载应用程序并再次尝试,我也会收到相同的错误。

【问题讨论】:

  • 您是在文件路径中使用“...”还是只是为了隐藏个人信息?
  • 这只是为了掩盖个人信息:D

标签: android android-studio android-gradle-plugin build.gradle


【解决方案1】:

对我来说,解决方案是更新我使用的所有库并更新到 Android 23。 也许这对某人有帮助。

【讨论】:

    【解决方案2】:

    默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 使用 Signature Scheme v2 对您的应用进行签名。将 v2SigningEnabled false 添加到 signingConfigs 可能会解决您的问题。

    signingConfigs {
          release {
            storeFile file("myreleasekey.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
            v2SigningEnabled false
          }
        }
    

    参考。 https://developer.android.com/preview/api-overview.html#apk_signature_v2

    【讨论】:

    • 错误消息中没有任何内容表明这与 APK 签名方案 v2 有任何关系。
    【解决方案3】:

    作为参考,我的签名配置如下所示 - 不是我的真实密码:

     signingConfigs {
        release {
            storeFile file("keystore/release.jks")
            keyAlias "release"
            storePassword "storepass"
            keyPassword "keypass
        }
    
        debug {
            storeFile file("keystore/debug.jks")
            keyAlias "androiddebugkey"
            storePassword "android"
            keyPassword "android"
        }
    }
    
     buildTypes {
        release {
            minifyEnabled true
            zipAlignEnabled true
            signingConfig signingConfigs.release
        }
    
        debug {
            minifyEnabled true
            zipAlignEnabled true
            signingConfig signingConfigs.debug
        }
    }
    

    【讨论】:

    • 只是忘了隐藏更多个人信息 :D gradle 是由 android studio 自动生成的,我会像你一样尝试一下
    • @LucaThiede,好的,更新了我的答案以删除对不匹配的签名配置名称的引用。
    • 是的,遇到了完全相同的问题。如果一些谷歌人从谷歌 I/O 上抽出时间来解决这个问题,那就太好了;)
    • @SubodhNijsure 你找到解决方案了吗?
    【解决方案4】:

    您是否尝试生成要使用的新密钥库? 就我而言,从 gradle build tools 1.5.0 升级到 2.1.0 后,我的旧密钥库文件不再工作 当我尝试它时,我感到很惊讶......

    【讨论】:

    • 是的,我创建了一个新的密钥库,但它仍然无法正常工作。此外,它甚至无法在调试模式下工作,其中 Android Studio 使用默认密钥库,如果这会被损坏,我的其他应用程序也不应该工作吗?
    【解决方案5】:

    显然问题是我们将 gradle 降级到 2.1.0 版时遇到了问题

        classpath 'com.android.tools.build:gradle:2.1.0'
    

    【讨论】:

      【解决方案6】:

      如果您在调试模式下仍然遇到此错误,那么只需清理您的项目并再次运行。这对我有用

      P.S:我使用的是 Android 2.2 Beta

      【讨论】: