Мне трудно заставить Android Studio собрать правильный вариант сборки - или даже иногда разрешить мне выбрать вариант сборки.
В основном у меня есть две разные версии моего проекта - бесплатная и "полная" версия. Идентификаторы пакетов: "com.mycompany.myproj" и "com.mycompany.myprojfree".
После того, как я указал варианты «myproj» и «myprojfree», а также типы сборки «release» и «debug», Android Studio выдаст четыре варианта в списке: myprojDebug, myprojfreeDebug, myprojfreeRelease и myprojRelease.
Проблема в том, что выбор одного из них не позволяет надежно выбрать вариант для сборки, отладки и т. Д. Например, я выберу myprojDebug, нажму Отладка, и будет построен myprojfreeDebug (как видно в консоли), и бесплатная версия откроется на подключенном устройстве.
Более того, иногда я даже не могу выбрать один или несколько вариантов сборки на панели вариантов сборки. Я могу нажать на нее, но она не меняется. Но иногда, если я изменю это на что-то иначе , сначала это позволит мне вернуться и изменить неизменяемое.
Я видел посты, в которых упоминались проблемы с похожим звучанием, и я следовал всем советам - очистка, восстановление, удаление .idea, удаление папки сборки, Invalidate Caches / Restart, удаление app.iml и т. Д. выгода.
Возможно, стоит отметить, что все это работало нормально до вчерашнего дня, когда я обновился с Android Studio 3.1 до 3.4.1.
Вот упрощенная версия моего приложения build.gradle:
apply plugin: 'com.android.application'
android {
defaultConfig {
versionCode ...
multiDexEnabled true
vectorDrawables {
useSupportLibrary true
}
minSdkVersion 15
targetSdkVersion 28
}
compileSdkVersion 28
signingConfigs {
myproj {
keyAlias ...
keyPassword ...
storeFile file('...')
storePassword ...
}
myprojfree {
keyAlias ...
keyPassword ...
storeFile file('...')
storePassword ...
}
}
flavorDimensions "tier"
productFlavors {
myproj {
signingConfig signingConfigs.myproj
applicationId 'com.mycompany.myproj'
}
myprojfree {
signingConfig signingConfigs.myprojfree
applicationId 'com.mycompany.myprojfree'
}
}
buildTypes {
release {
debuggable false
buildConfigField "Boolean", "MY_DEBUG_MODE", "false"
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
debug {
debuggable true
buildConfigField "Boolean", "MY_DEBUG_MODE", "true"
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
}
configurations {
implementation.exclude group: "org.apache.httpcomponents", module: "httpclient"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
...
}