无法在Android Studio中切换到调试版本变体

问题描述 投票:20回答:12

我已经切换到发布构建变体并配置了signingConfigs。现在,当我尝试从下拉菜单中检查调试版本变体时,它立即切换回发布版本变体。所以我无法再以调试模式运行我的应用程序了。

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

android {
    signingConfigs {
        config {
            ...
        }
    }

    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        applicationId "com.kost.foo"
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        versionCode 2
        versionName "1.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
        externalNativeBuild {
            cmake {
               ...
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable true
            signingConfig signingConfigs.config
        }
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
        main {
            jniLibs.srcDirs = ['src/main/jni']
        }
    }

    externalNativeBuild {
        cmake {
            path 'src/main/jni/CMakeLists.txt'
        }
    }
}

kapt {
    generateStubs = true
}

repositories {
    maven { url 'https://github.com/linchaolong/stetho-realm/raw/master/maven-repo' }
    mavenCentral()

}

我试图在配置之前恢复build.gradle中的所有更改,但没有运气。

任何想法如何解决问题?

android android-studio android-gradle
12个回答
15
投票

我遇到了类似的问题,其中大多数Build菜单项都是灰色的。 greyed out

“与Gradle文件同步项目”没有修复。

我注意到Android Studio(v 3.1.2)左下角的“Build Variants”切换按钮,最终能够选择我需要的变体。

Choose variant from here

也许这对你也有用。


0
投票

英语不是我的母语;请原谅输入错误。

我也遇到了这种情况。我这样做是为了解决。 SOLV: 1.删​​除each module's impl后缀类型文件和build文件夹; 2.然后单击此按钮以将项目与gradle构建文件同步。 button position

最后。然后这个问题将得到解决。


0
投票

我修正了这个由:

  1. 通过编辑build.gradle添加名为debug1的新构建类型;启用此构建类型的调试功能;
  2. 同步并选择新的构建类型debug1;

-2
投票

与build.gradle文件无关,

分享希望它可以帮助别人 -

我有类似的问题,因为build.gradle中的一行 -

android {
    ...
    publishNonDefault true // remove this line and it should work!
}

qazxsw opi你可以获得有关publishNonDefault的更多细节 -


也可以发布库的所有变体。我们计划在使用正常的项目到项目依赖关系时允许这样做(如上所示),但由于Gradle的限制(我们正在努力修复这些),目前这是不可能的。默认情况下不启用所有变体的发布。下面的代码段启用此功能:



8
投票

只需要剪切“.idea”文件夹并将其粘贴到Project根文件夹之外(如果需要,备份)。这些文件将自动重新生成。在打开项目时,它会向你的项目询问添加模块(app)。你可以忽略它。

它将set default build variant设置为“debug”。您可以在左下角看到构建变量选项卡,或者将鼠标悬停在左下角的“Monitor”符号上以获取构建变体选项。


6
投票

也许你已经得到了解决方案,以防万一,我在这里提供我的解决方案。


适用于Android Studio 2.x.

这可能是因为您使用以下方法编译依赖项目:

compile project('module_a')

上面的设置将强制您的项目编译模块的发布版本。只需将其更改为:

releaseCompile project(path: ':module_a', configuration: 'release')
debugCompile project(path: ':module_a', configuration: 'debug')

对于Android Studio 3.x

您无需为“模块项目”显式指定构建变体。只是用

implementation project(':library') 

将自动帮助选择正确的构建变体。

这是一个详细的解释:https://developer.android.com/studio/build/?utm_source=android-studio#variant_aware


对于Android Studio 3.x从2.x升级

删除项目根目录下的.idea文件夹,然后重新启动Android Studio。

以下是GUI截图:

enter image description here

希望能帮助到你!


4
投票

遇到同样的问题,解决了创建新的临时构建类型,构建>编辑构建类型,选择构建类型并添加新类型。同步,然后您可以选择新的构建类型,然后恢复为原始的Debug构建类型。


4
投票

我刚才有同样的问题。通过关闭Android Studio解决它,删除生成的文件和文件夹:.gradle.ideaapp/.externalNativeBuildapp/buildbuildapp/app.imlProjectName.imllocal.properties,然后重新启动Android Studio并允许它从头重新生成所有这些文件。


1
投票

对我来说,我无法切换到我们的'devDebug'变体,但我可以切换到另一个变体,如'devRelease'然后'devDebug'。因此,首先尝试切换到另一个变体。


1
投票

打开模块设置。 (点击F4)

转到构建类型并通过单击加号(+)来创建新的构建。

将其命名为“demo”。

复制调试版本的所有数据。

现在,当您打开Build Variant时,您将能够切换到Debug和Demo。


1
投票

我遇到了类似的问题。我的模块级build.gradle反映了为“debug”和“release”指定的配置。在构建和签署我的应用程序的发行版本之前,我能够在模拟器和设备(LG)上成功运行我的应用程序。在构建并签署发行版并尝试在我的手机和设备上运行签名APK之后,我收到了错误PM Session 'mobile': Error Launching activity....Error while Launching activity ..因此我开始回顾我的步骤并意识到在部署签名版本变体之前,我打开了运行/调试配置Dialogenter image description here

并从安装类别enter image description here下的“部署”属性中错误地选择了值APK

我签署了我的APK在它的ENTIRETY而不是通过Bundle,所以选择的选项是试图部署一个从未生成的无效应用程序包开始,即使它是为正确的构建变体。


0
投票

我也有这个问题。我的解决方案是结帐到我更改了构建变体的分支。在那个分支,我可以从发布版更改为调试版。然后只需结帐到当前分支,一切正常。它似乎是一个Android Studio错误。

© www.soinside.com 2019 - 2024. All rights reserved.