【问题标题】:Android Studio 3.5.2 - Error: The apk for your currently selected variant (app-release-unsigned.apk) is not signedAndroid Studio 3.5.2 - 错误:您当前选择的变体 (app-release-unsigned.apk) 的 apk 未签名
【发布时间】:2019-11-29 23:22:50
【问题描述】:

一点背景。几个月来我一直在构建/调试/测试我的简单应用程序,没有任何问题。在 AVD 或我实际的 S9 手机上构建/安装。几个月来一切都很好。现在,准备好在 Play 商店中发布我的第一个 beta 版本(我的第一个应用程序)。所以,我按照“签署”我的应用程序的说明进行操作。那行得通,我将我的应用程序包上传到了 Play 商店。现在我再也无法在 Android Studio 中构建/调试/安装了。

错误:您当前选择的变体 (app-release-unsigned.apk) 的 apk 未签名。请为此变体(版本)指定签名配置。

调试 (Shift+F9) 产生上述错误并显示“编辑配置”对话框。

我点击“修复”按钮,然后我不知道该怎么做。或者如何使用这些不同的构建配置。

build.gradle

apply plugin: 'com.android.application'

android {
    signingConfigs {
        debug {
            storeFile file(var)
            storePassword 'xxx'
            keyAlias = 'xxx'
            keyPassword 'xxx'
        }
    }
    compileSdkVersion 29
    buildToolsVersion "29.0.1"
    defaultConfig {
        applicationId "com.birdersdiary.mobile"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "b1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.preference:preference:1.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

单击“修复”按钮后,我将进入“运行/调试配置”对话框。从那里开始,我完全忘记了为了解决问题需要发生什么。

非常感谢任何帮助。

【问题讨论】:

  • 您应该在 build.gradle 上为 buildType 版本设置歌唱配置。如果您需要进一步帮助,请发布您的应用 build.gradle
  • 谢谢。我按要求发布了我的 build.gradle。
  • 1:您可以修改图片下方的构建版本流程image
  • 请不要在问题中编辑解决方案公告。接受(即单击旁边的“勾号”)现有答案之一,如果有的话。如果现有答案尚未涵盖您的解决方案,您还可以创建自己的答案,甚至接受它。比较stackoverflow.com/help/self-answer

标签: android android-studio android-buildconfig


【解决方案1】:

您可以通过执行以下任一操作来解决此问题

    1234563 @,这将在您的 android studio 屏幕左侧显示构建变体选项,然后您应该选择名称附加了调试的变体。
  1. 如果您想使用发布版本,您需要指导 android studio 如何找到签署 apk 的密钥 将此添加到您的应用级 build.gradle 文件中

    apply plugin: 'com.android.application'
    
    android {
     signingConfigs {
        debug {
            storeFile file(var)
            storePassword 'xxx'
            keyAlias = 'xxx'
            keyPassword 'xxx'
        }
        release {
            storeFile file(var)
            storePassword 'xxx'
            keyAlias = 'xxx'
            keyPassword 'xxx'
        }
    }
    compileSdkVersion 29
    buildToolsVersion "29.0.1"
    defaultConfig {
        applicationId "com.birdersdiary.mobile"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "b1.0"
        testInstrumentationRunner     "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
     }
    
    dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.preference:preference:1.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    }
    

用实际值替换占位符。

【讨论】:

  • 谢谢 oziomajnr;但是,由于这是我的第一个应用程序,我需要更多细节,因为我不完全理解您的回复。我已经在上面发布了我的 build.gradle。
  • 我修改了你的 build.gradle 文件@JJJones_3860
  • 非常感谢您的帮助。我相信问题在于我清楚所有这些构建/变体/签名配置对我来说是新的和模糊的。我没有头绪。如上所示,我已对 build.gradle 进行了修改,但问题仍然存在。 Ctl+Alt+A 什么都不做。但是,Shft+Shft 会打开搜索,然后我输入“构建变体”,我确实会在左侧看到“构建变体”工具栏。它只显示“应用程序/发布”,没有调试。所以,仍然停留在同一个地方。问题没有解决。请假设我对这些东西一无所知。
  • 这里有这么多活动部件,对于新手来说,这简直令人难以置信。
  • 是的,第一个选项有效tool window bar 有一个名为build variant 的选项卡,我们必须选择调试
【解决方案2】:

您应该在定义歌唱配置后对其进行设置。如果您打算将其用于发布,我猜想将其命名为调试以外的其他名称:

buildTypes {
        release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

           signingConfig signingConfigs.debug
        }
    }

【讨论】:

  • 谢谢,但我需要非常原始的一步一步。我仍然被困在同一个地方。我不明白你建议我做什么来解决这个问题。
  • 你已经定义了配置,但是你需要设置它。请注意,我从您的 build.gradle 向 buildType 添加了一个 signingConfig 行
  • 再次感谢瑞克。很抱歉如此密集。我根本不明白这些配置。我可以告诉你,我刚刚通过随机尝试解决了这个问题,最后在“运行/调试配置”下,我将“部署”从“默认 APK”设置为“应用包中的 APK”。那个问题已经消失了,但是现在,当 AVD 出现时,它无法运行/工作。叹息……
  • 我只需要知道如何再次构建调试 apk 并将其安装在我的 AVD 上进行测试。这就是我现在所需要的。
  • 让它再次工作。必须擦除 AVD 的数据并进行冷启动。现在一切似乎都在工作。手指交叉。
【解决方案3】:

请确认以下所有点都没有问题。

  1. 在左侧项目面板中
  • 点击应用并打开打开模块设置
  • 在 let 面板中选择 Module,然后选择 app
  • 在右侧面板中,您可以看到 3 个选项卡(属性、默认配置和签名配置)
  1. 在签署配置检查时认为(如果您没有,请创建新密钥)
  • 在 Store File 中设置您的 jks 文件位置
  • 同时设置存储密码别名和密钥密码

  1. 在默认配置中 - 只需检查您的应用程序 ID 是否正确

  2. 现在在左侧面板中检查下面的想法

  • 选择 Build Variants 并向下滚动到 Signing Config
  • 检查您是否选择了任何或请选择进入 $signingConfigs.release

【讨论】:

    【解决方案4】:

    在android studio的左侧,有Build Variants。从release 更改为debug 对我有用。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 2015-08-15
      • 1970-01-01
      • 2016-04-05
      相关资源
      最近更新 更多