【问题标题】:Unable to switch to debug build variant in Android Studio无法在 Android Studio 中切换到调试构建变体
【发布时间】:2017-07-27 19:18:56
【问题描述】:

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

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 中的所有更改还原为配置之前的状态,但没有成功。

有解决问题的方法吗?

【问题讨论】:

  • 您是否尝试手动将项目与 gradle 文件同步?
  • @ridoy 是的,试过了。没有帮助
  • 我也面临同样的问题
  • 我不能说我已经解决了,因为我仍然不知道是什么导致了问题。但我发现最快的解决方法是将项目推送到 git(在我的例子中是 bitbucket)并从新项目的版本控制中检查出来。
  • 我跟着你的工作,它确实有帮助!!!谢谢@AlexKost

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


【解决方案1】:

我遇到了一个类似的问题,大多数“构建”菜单项都是灰色的。

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

我注意到 Android Studio (v 3.1.2) 左下角有一个“构建变体”切换按钮,最终可以选择我需要的变体。

也许这对你也有用。

【讨论】:

    【解决方案2】:

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


    适用于 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


    适用于从 2.x 升级的 Android Studio 3.x

    删除项目根目录下的.idea 文件夹并重启Android Studio。

    以下是图形用户界面截图:

    希望对你有帮助!

    【讨论】:

    • 这仅适用于较旧的 gradle 版本:link,请参阅 @rockefelox 的帖子了解较新的版本
    • 是的。从 Android Studio 3.0 开始,所有 xxxCompile 闭包都更改为 xxxImplementation。
    • 对于 Android Studio 3.1.2,您无需为“模块项目”显式指定构建变体。只需使用 implementation project(':library') 将自动帮助选择正确的构建变体。这里有详细解释developer.android.com/studio/build/…
    【解决方案3】:

    只需要剪切“.idea”文件夹并将其粘贴到项目根文件夹之外(如果需要,可以备份)。这些文件将自动重新生成。打开项目时,它会要求将模块(应用程序)添加到您的项目中。您可以忽略它。

    它将设置默认构建变体设置为“调试”。 您可以在左下角看到构建变体选项卡或将鼠标悬停在左下角的“监控”符号上以获取构建变体选项。

    【讨论】:

    • 这是在 Android Studio 3.1.2 中对我有用的解决方案
    • 很高兴知道它对您有所帮助。 :)
    • 也为我工作。刚刚删除了 .idea 文件夹并通过阅读 build.gradle 重新创建了工作空间
    • 我需要删除并重新导入项目,如下所述:stackoverflow.com/a/45950059/5443056
    • 由于某种原因删除 .idea 文件夹和 invalidate cache and restart 不起作用。并删除它,然后重新启动即可。
    【解决方案4】:

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

    【讨论】:

    • 只需要删除rm -rf ./.gradle ./app/.gradle .idea/caches/
    【解决方案5】:

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

    【讨论】:

    • 是唯一对我有用的解决方案 Android Studio 3.4.2
    • 在 Android Studio 上,这些类型的解决方案总是最好的。
    【解决方案6】:

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

    点击加号(+)转到构建类型并创建一个新的构建。

    给它起任何名字,比如“demo”。

    复制调试构建的所有数据。

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

        并错误地从 Installation 类别下的 Deploy 属性中选择了 Value APK from app bundle

        我在整个 APK 而不是通过 Bundle 签署了我的 APK,因此选择的选项是尝试部署一个从不开始生成的无效 App Bundle,甚至如果是正确的Build Variant

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

            英语不是我的母语;请原谅打字错误。

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

            终于。然后这个问题就解决了。

            【讨论】:

              【解决方案11】:

              我已修复此问题的发布者:

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

              【讨论】:

              • 但是我不知道为什么我不能切换到原来的调试模式。无论如何,上面的步骤解决了无法调试的问题。
              【解决方案12】:

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

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

              【讨论】:

              • 虽然这可能会回答问题,但您应该 edit 您的回答,以在答案本身中包含与问题相关的链接中的任何重要内容。如果链接因任何原因停止工作,主要由指向其他地方的链接组成的答案可能会变得无效。
              【解决方案13】:

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

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

              你可以在下面找到你正在使用的 gradle 版本:

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

              【讨论】:

                【解决方案14】:

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

                【讨论】:

                  【解决方案15】:

                  在 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'
                  }
                  

                  【讨论】:

                    【解决方案16】:

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

                    【讨论】:

                      【解决方案17】:

                      与您的 build.gradle 文件无关,

                      分享希望对别人有帮助 -

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

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

                      Here你可以得到更多关于publishNonDefualt的细节-


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


                      【讨论】:

                      • 解决问题时,我的 build.gradle 中没有该行。
                      • 我的 build.gradle 中没有该行。有什么相关性?
                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2022-07-21
                      • 1970-01-01
                      • 2019-01-13
                      • 1970-01-01
                      • 2019-10-15
                      • 1970-01-01
                      • 2016-04-16
                      相关资源
                      最近更新 更多