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

Ale*_*ost 23 android android-studio android-gradle-plugin

我已经切换到发布构建变体并配置了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()

}
Run Code Online (Sandbox Code Playgroud)

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

任何想法如何解决问题?

paw*_*aws 17

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

"与Gradle文件同步项目"没有修复.

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

从这里选择变体

也许这对你也有用.


dev*_*a11 8

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

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


shi*_*hen 7

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


适用于Android Studio 2.x.

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

compile project('module_a')
Run Code Online (Sandbox Code Playgroud)

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

releaseCompile project(path: ':module_a', configuration: 'release')
debugCompile project(path: ':module_a', configuration: 'debug')
Run Code Online (Sandbox Code Playgroud)

对于Android Studio 3.x

您无需为"模块项目"显式指定构建变体.只是用

implementation project(':library') 
Run Code Online (Sandbox Code Playgroud)

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

以下是详细说明:https://developer.android.com/studio/build/?utm_source = android-studio #variant_aware


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

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

希望能帮助到你!


And*_*tin 7

我只是有同样的问题。通过关闭 Android Studio,删除生成的文件和文件夹来解决它:.gradle, .idea, app/.externalNativeBuild, app/build, build, app/app.iml, ProjectName.iml, local.properties,然后重新启动 Android Studio 并允许它从头开始重新生成所有这些文件。

  • 只需删除 `rm -rf ./.gradle ./app/.gradle .idea/caches/` (2认同)

小智 5

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


Man*_*sha -3

与你的 build.gradle 文件无关,

分享希望对其他人有帮助 -

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

android {
    ...
    publishNonDefault true // remove this line and it should work!
}
Run Code Online (Sandbox Code Playgroud)

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


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


  • 当我解决这个问题时,我的 build.gradle 中没有这一行。 (4认同)