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

时间:2017-03-07 14:23:04

标签: android android-studio android-gradle

我已切换到发布构建变体并配置了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中的所有更改,但没有运气。

如何解决问题?

17 个答案:

答案 0 :(得分:13)

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

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

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

Choose variant from here

也许这对你也有用。

答案 1 :(得分:7)

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

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

答案 2 :(得分: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

希望它有所帮助!

答案 3 :(得分:3)

我遇到了同样的问题。通过关闭Android Studio解决此问题,删除生成的文件和文件夹:-type.gradle.ideaapp/.externalNativeBuildapp/buildbuildapp/app.imlProjectName.iml,然后重新启动Android Studio并允许它从头开始重新生成所有这些文件。

答案 4 :(得分:3)

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

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

将其命名为“demo”。

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

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

答案 7 :(得分:1)

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

并错误地从安装类别下的 Deploy 属性中选择了来自应用程序捆绑包的值 APK enter image description here

我在整个APK中签名了我的APK,而不是通过捆绑软件 ,因此选择的选项是尝试部署从未生成过的无效应用捆绑软件,甚至是否适用于正确的 Build Variant

答案 8 :(得分:0)

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

答案 9 :(得分:0)

  

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

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

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

答案 10 :(得分:0)

我解决了以下问题:

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

答案 11 :(得分:0)

在Linux上的符号链接位置打开项目时,似乎会出现此问题。打开项目直接为我解决了这个问题。

相关链接:https://issuetracker.google.com/issues/156857164

答案 12 :(得分:0)

对我来说,这是gradle版本的问题。确保您的插件版本和所需的gradle版本符合此处定义。

https://developer.android.com/studio/releases/gradle-plugin

您可以在以下位置找到正在使用的gradle版本:

文件->项目结构...->项目

答案 13 :(得分:0)

我尝试了以上所有方法,但没有任何效果。最终由于其他原因,偶然发现File> Invalidate Caches / Restart ...,发现它对我有用。

答案 14 :(得分:0)

在build.gradle中的应用主根目录中

将其替换为:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
}

在我的情况下为我的Android Studio v3.0.1:

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
}

答案 15 :(得分:0)

2021 年 3 月 26 日: 不会从 Release 切换到 Debug, 档案 |无效缓存为我修复了它

答案 16 :(得分:-2)

与build.gradle文件无关,

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

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

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

Here您可以获得有关publishNonDefualt的更多详细信息 -

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