it-swarm.com.ru

Android Studio Canary 3.4 Canary 4: ОШИБКА: variable.getApplicationId () не поддерживается подключаемыми модулями

Поскольку я обновил свой проект на новой Android Studio 3.4 Canary 4 , синхронизация gradle завершилась неудачно, потому что: 

ERROR: variant.getApplicationId() is not supported by feature plugins as it cannot handle delayed setting of the application ID. Please use getApplicationIdTextResource() instead.
Affected Modules: base

Ранее я был на Canary 3, и он работал отлично.

Проект представляет собой многофункциональное приложение, включающее мгновенное приложение.

Gradle версия - gradle-5.0-milestone-1-all

Мой уровень проекта build.gradle

buildscript {

    ext.kotlin_version = '1.3.10'

    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.Android.tools.build:gradle:3.4.0-alpha04'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'Android.Arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha07'
    }

}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {

    compileSdkVersion = 28
    minSdkVersion = 16
    targetSdkVersion = 28

    appVersionCode = 5
    appVersion = "2.0.0-dev01"

}

база build.gradle

apply plugin: 'com.Android.feature'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'jacoco'
apply plugin: 'androidx.navigation.safeargs'

Android {

    def yo = rootProject

    compileSdkVersion yo.compileSdkVersion

    baseFeature true

    defaultConfig {
        minSdkVersion yo.minSdkVersion
        targetSdkVersion yo.targetSdkVersion
        versionCode yo.appVersionCode
        versionName yo.appVersion
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary true
        multiDexEnabled true
    }

    buildTypes {
        debug {
            testCoverageEnabled !project.hasProperty('Android.injected.invoked.from.ide')
            multiDexKeepFile file('multidex-config.txt')
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            multiDexKeepFile file('multidex-config.txt')
        }
    }

    dataBinding {
        enabled = true
    }

    lintOptions {
        disable "InvalidPackage"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

}

repositories {
    mavenCentral()
    google()
}

dependencies {

    application project(':app')
    feature project(':module1')

    [...]

}

приложение build.gradle

apply plugin: 'com.Android.application'

Android {

    def yo = rootProject
    compileSdkVersion yo.compileSdkVersion

    defaultConfig {
        applicationId "com.package.name"
        minSdkVersion yo.minSdkVersion
        targetSdkVersion yo.targetSdkVersion
        versionCode yo.appVersionCode
        versionName yo.appVersion
        multiDexEnabled true
    }

    buildTypes {
        debug {
            applicationIdSuffix ".dev"
            splits.abi.enable = false
            splits.density.enable = false
            aaptOptions.cruncherEnabled = false

        }
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled = true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

dependencies {

    implementation project(':module1')
    implementation project(':base')

    implementation 'com.Android.support:multidex:1.0.3'

}

apply plugin: 'com.google.gms.google-services'

Я пытался синхронизировать свой проект без зависимостей, но он тоже работает.

Я также пытался сделать недействительными кэши и перезапустить, но безрезультатно.

Согласно журналу ошибок, проблема в базовом файле build.gradle, но я понятия не имею, в чем проблема.

Заранее спасибо за вашу помощь!

3
Vince

Хорошо, я основал проблему.

Это безопасный навигационный плагин args thats fail.

apply plugin: 'androidx.navigation.safeargs'

Если я уберу эту строку, проект сможет синхронизировать, но не сможет создать причину для классов, отсутствующих в навигационных safeargs.

В плагине навигации в Android Studio 3.4 Canary 4 есть ошибка, примененная в файле baseFeature build.gradle.

Я отправлю новый вопрос для этого.

3
Vince

Для тех, у кого есть похожая проблема, убедитесь, что все зависимости в вашем project-level build.gradle обновлены.

Например, у меня была эта проблема, когда моя версия плагина google-services устарела:

buildscript {
    repositories {
        ...
    }
    dependencies {
        ...
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

После обновления до последней версии проблема была решена:

buildscript {
    repositories {
        ...
    }
    dependencies {
        ...
        classpath 'com.google.gms:google-services:4.2.0'
    }
}
0
Vitaly Zinchenko