Не удалось переключиться на вариант отладки сборки в Android Studio

Я перешел на вариант сборки релиза и настроил signatureConfigs. Теперь, когда я пытаюсь проверить вариант отладочной сборки из выпадающего меню, он сразу переключается обратно на вариант сборки выпуска. Поэтому я больше не могу запускать свое приложение в режиме отладки.

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, как это было до настройки, но безуспешно.

Есть идеи, как решить проблему?

Ответ 1

У меня была похожая проблема, когда большинство пунктов меню Build были серыми. greyed out

"Синхронизировать проект с файлами Gradle" не исправлено.

Я заметил тумблер "Build Variants" в левом нижнем углу Android Studio (v 3.1.2) и, наконец, смог выбрать нужный мне вариант.

Choose variant from here

Может быть, это будет работать для вас тоже.

Ответ 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


Для Android Studio 3.x Обновлен с 2.x

Удалите папку .idea в .idea каталоге вашего проекта и перезапустите Android Studio.

Ниже скриншот графического интерфейса:

enter image description here

Надеюсь, поможет!

Ответ 3

Просто нужно вырезать папку ".idea" и вставить ее за пределы корневой папки проекта (для резервного копирования, если вам нужно). Эти файлы будут автоматически восстановлены. При открытии проекта он попросит добавить модуль (приложение) к вашему проекту. Вы можете игнорировать то же самое.

Он установил вариант построения по умолчанию для "debug". Вы можете увидеть вкладку варианта варианта в левом углу или наведите указатель на "Монитор" слева внизу, чтобы получить вариант варианта сборки.

Ответ 4

Имела ту же проблему, решила создать новый временный тип сборки, Build > Edit Build Types, выбрать Build Types и добавить новый. Sync, вы можете выбрать новый тип сборки, а затем вернуться к исходному типу сборки Debug.

Ответ 5

У меня была такая же проблема. Решив его, закрыв Android Studio, удалив сгенерированные файлы и папки: .gradle, .idea, app/.externalNativeBuild, app/build, build, app/app.iml, ProjectName.iml, local.properties, а затем перезапустите Android Studio и позволяет ему восстанавливать все эти файлы с нуля.

Ответ 6

Для меня я не смог переключиться на наш вариант "devDebug", но я мог переключиться на другой вариант, например "devRelease", а затем "devDebug". Поэтому сначала попробуйте переключиться на другой вариант.

Ответ 7

Откройте настройку модуля. (Нажмите F4)

Перейдите к строкам и создайте новую сборку, щелкнув знак плюса (+).

Назовите это что угодно, например "demo".

Дублировать все данные сборки отладки.

Теперь, когда вы откроете Build Variant, вы сможете переключиться на Debug, а также Demo.

Ответ 8

Я столкнулся с аналогичной проблемой. Мой уровень модуля build.gradle отражает конфигурации, указанные для "отладки" И "выпуска" соответственно. Мне удалось успешно запустить мое приложение на эмуляторе и устройстве (LG) до создания и подписания моей продакшен версии моего приложения. После создания и подписания продакшен версии и попытки запустить подписанный APK на моем телефоне и устройстве я получил сообщение об ошибке PM Session 'mobile': Error Launching activity....Error while Launching activity Итак, я начал пересматривать свои шаги и понял, что перед развертыванием подписанного варианта выпуска я открыл диалоговое окно Run/debug Configurations enter image description here

и по ошибке выбрал значение APK из значения пакета приложения из атрибута Deploy в категории установки enter image description here

Я подписал свой APK в ENTIRETY, а не через Bundle, поэтому выбранная опция пыталась развернуть недопустимый комплект приложений, который никогда не создавался, даже если это был правильный вариант сборки.

Ответ 9

У меня тоже есть этот вопрос. Мое решение - проверка на ветку, в которой я изменил варианты сборки. И в этой ветке я могу перейти от отпуска к отладке. Затем просто проверяйте текущую ветку, и все в порядке. Кажется, это ошибка Android Studio.

Ответ 10

Английский не мой родной язык; пожалуйста, извините за ошибки при печати.

Я также встречаю эту ситуацию. Я делаю это, чтобы решить.
Со:
1. удалите файл типа impl суффикса each module's и папку сборки;
2. затем нажмите эту кнопку, чтобы синхронизировать проект с файлом сборки Gradle. положение кнопки

в конце концов. и тогда эта проблема будет исправлена.

Ответ 11

Я исправил это, выданный:

  1. Добавьте новый тип сборки с именем debug1 через edit build.gradle; включите функцию отладки этого типа сборки;
  2. Синхронизируйте и выберите новый тип сборки debug1;

Ответ 12

Не связанный с вашим файлом build.gradle,

В надежде, что это поможет кому-то другому -

У меня была аналогичная проблема, потому что одна из строк в build.gradle -

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

Здесь вы можете получить более подробную информацию об изданииNonDefualt -


Также возможно опубликовать все варианты библиотеки. Мы планируем разрешить это, используя обычную зависимость между проектами (как показано выше), но сейчас это невозможно из-за ограничений в Gradle (мы также работаем над их исправлением). Публикация всех вариантов не включена по умолчанию. Ниже приведен фрагмент ниже: