Ошибка при добавлении buildFeatures в файл build.gradle - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь сочинить, что является новой функцией в Andorid Jetpack. Ниже мой код. Я добавляю buildfeatures в файл build.gradle приложения, а не в корневую папку.

android {
    compileSdkVersion compileSDKVer
    buildToolsVersion buildToolsVer
    defaultConfig {
        applicationId "com.sample.slothyhacker.jetpackcompose"
        minSdkVersion minSdkVer
        targetSdkVersion targetSdkVer
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    buildFeatures {
        // Enables Jetpack Compose for this module
        //compose true
    }

    compileOptions {
        // Set both the Java and Kotlin compilers to target Java 8.
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Но мой проект выдает ошибку компиляции. Я был бы очень признателен, если бы кто-то смог пролить свет на то, что я делаю неправильно.

Could not find method buildFeatures() for arguments [build_7yf57wk394cperk1t82v120yf$_run_closure1$_closure5@78c292be] on object of type com.android.build.gradle.internal.dsl.BaseAppModuleExtension.

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Вы можете добавить это только в Android Studio 4.0+, которая доступна только в Canary build

0 голосов
/ 04 ноября 2019

Чтобы добавить Jetpack Comose в свой проект, вам нужно выполнить следующие шаги:

Примечание: вы должны быть на 4.1 Canary build Android Studio

Шаг 1Внутри файла build.gradle

android {
    defaultConfig {
        ...
        minSdkVersion 21
    }

    buildFeatures {
        // Enables Jetpack Compose for this module
        compose true
    }
    ...

    // Set both the Java and Kotlin compilers to target Java 8.

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Примечание. Для Jetpack Compose в настоящее время требуется экспериментальная версия плагина Kotlin-Gradle. Чтобы включить этот плагин в ваше приложение, включите следующее в файл build.gradle вашего проекта

buildscript {
    repositories {
        google()
        jcenter()
        // To download the required version of the Kotlin-Gradle plugin,
        // add the following repository.
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0-alpha01'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.60-eap-25'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

Шаг 2: Добавьте зависимости набора инструментов Jetpack Compose в ваш файл build.gradle

dependencies {
    // You also need to include the following Compose toolkit dependencies.
    implementation 'androidx.ui:ui-tooling:0.1.0-dev02'
    implementation 'androidx.ui:ui-layout:0.1.0-dev02'
    implementation 'androidx.ui:ui-material:0.1.0-dev02'
    ...
}
...