【问题标题】:Installation failed with Android Studio, APK not signed使用 Android Studio 安装失败,APK 未签名
【发布时间】:2013-10-26 22:35:40
【问题描述】:

最近从 Eclipse 更改为 Android Studio,我也将 JDK 从 java-open-jdk 更改为 jdk1.7.0_45

现在我正在尝试运行我的第一个应用程序并收到以下消息:

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

编辑:

当我从 Android Studio 运行时,我收到上面显示的错误。当我从命令行运行它时,我没有收到错误消息(应用程序正在运行并且我收到错误消息,但与 gradle 无关)。

我从here得到代码

你可以在这里google repo查看 build.gradle

更新 2:

我添加了这段代码

signingConfigs {
    release {
        storeFile file("john.keystore")
        storePassword "john"
        keyAlias "johnkeystore"
        keyPassword "john"
    }
}

就在 build.gradle 文件中的 buildTypes 代码块上方。 文件 john.keystore 位于我的项目的根目录上。我正在运行gradlew assembleRelease,我得到一个xxx-release-unsigned.apk

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    如果您确实使用 gradle 运行构建,则需要配置 signingConfigs。 Android 可以自动配置您的调试签名配置。您可以通过以下方式发布signingConfig

    android {
    
        signingConfigs {
    
            release {
    
                storeFile file('android.keystore')
                storePassword "pwd"
                keyAlias "alias"
                keyPassword "pwd"
            }
        }
    
        buildTypes {
    
           release {
    
               signingConfig signingConfigs.release
           }
        }
    }
    

    在此处查看有关此主题的手册:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Signing-Configurations

    如果您仍有问题,请使用您的build.gradle 更新问题。最有可能的问题就在这里。我正在使用 JDK 1.7 并且 gradle 构建工作正常。

    【讨论】:

    • 您似乎没有在您的发布版本类型中注册添加signingConfig。像这样:pastebin.com/VbaW9Hyz
    • 成功了。现在我有 tasks-android-sample-release.apk 和 tasks-android-sample-release-unaligned.apk 。希望第一个是我需要的,除非它必须明确包含在 apk 名称中签名的单词?
    • 你说得对,-release.apk 已准备就绪。您可以通过运行下一个命令 jarsigner -verify -verbose -certs tasks-android-sample-release.apk 来仔细检查 .apk 是否确实已签名。您应该会看到签名 apk 的 jar verified 输出。
    • Android Studio 0.5.2 将签名配置放在我的 build.gradle 中的构建变体下方。手动移动上述的 signingConfigs 容器解决了这个问题。
    【解决方案2】:

    我遇到了同样的问题,我去了 Build->Clean Project 并重新执行该项目并且它工作了。

    【讨论】:

    • 对我来说,重新同步项目解决了在构建变体之间切换后的问题。
    【解决方案3】:

    我一直在努力使用 Android Studio esp。 gradle 和 build 变体。

    我已经从定义的构建类型中更改了这一点:

    debug
    release
    

    【讨论】:

      【解决方案4】:

      当我遇到同样的问题(在开发和运行测试时)时,我去了Build -> Rebuild Project,然后重新启动了模拟器。这对我有用。

      【讨论】:

        【解决方案5】:

        没有一个答案对我有用,即使从手机上卸载应用程序后,我也无法部署它。有效的方法是将应用程序安装到不同的设备上,然后当我尝试将其部署到以前的设备上时,它奇迹般地工作了。

        【讨论】:

          【解决方案6】:

          如果您的目标不是为您的应用程序创建自定义构建,您可能希望从您的测试设备中清除所有关于它的数据,以防您使用模拟器,只需擦除设备中的所有数据。转到 -> Tools -> Android -> AVD Manager -> [您要擦除的设备](在操作选项卡中)-> Wipe Data

          如果是实际设备,只需卸载应用程序和所有相关数据。

          原因是未签名的 APK 具有签名,因此设备会看到您正在尝试安装具有相同包名的东西,而该包名不是在此处生成的。

          希望这可以为您节省一些时间。

          【讨论】:

            【解决方案7】:

            如果您的设备有多个用户,在安装签名 APK 之前,请检查是否没有为其他用户安装相同的应用。如果有,请将其删除。

            对我来说,这是拒绝安装签名 APK 的根本原因。

            【讨论】:

              【解决方案8】:

              Just to Build -> Rebuild Project 然后重新启动模拟器。这对我有用。

              【讨论】:

                猜你喜欢
                • 2015-05-07
                • 2015-08-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-11-23
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多