Проблемы с вариантом сборки Android Studio - PullRequest
0 голосов
/ 30 мая 2019

Мне трудно заставить 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 {
    ...
}
...