在build.gradle文件中添加buildFeatures时出错

我正在尝试撰写,这是Andorid jetpack的新功能。下面是我的代码。我要在app的build.gradle文件中而不是在根文件夹中添加buildfeatures。

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.
adslfly 回答:在build.gradle文件中添加buildFeatures时出错

对于build.gradle.kts,我无法添加

android {
    buildFeatures {
        dataBinding = true
        viewBinding = true
    }
}

这是有效的

android {
    buildFeatures.dataBinding = true
    buildFeatures.viewBinding = true
}
,

当我尝试将Jetpack添加到现有应用程序时,我捕获了此错误。我遵循了Suraj's的答案,甚至使用了最新的 Kotlin gradle插件,却无法确切找出问题所在。我还遵循了官方setup guide,但没有成功。一切似乎都正常,但没有任何帮助。

安装Android Studio 4.0金丝雀也无济于事。

结果证明,仅包含某些依赖项还不够-您需要特定的版本或更高版本。我使用的是旧版 Android Gradle插件:3.5.3。升级到4.0.0-alpha07可以修复错误:

classpath 'com.android.tools.build:gradle:4.0.0-alpha07'

如果要将Jetpack添加到现有应用,请确保检查依赖项

,

似乎这

buildFeatures {
    viewBinding true
}

被替换为

viewBinding {
    enabled true
}

Reference

,

您只能在仅适用于Canary版本的Android Studio 4.0+中添加此内容

,

我通过升级到 Android Studio 4.1.2 和 Gradle 到 4.1.2 解决了这个问题。

,

要将jetpack compose添加到您的项目中,您需要执行以下步骤:

注意:您应该使用Android Studio的4.1 Canary版本

第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步:在build.gradle文件中添加Jetpack Compose工具包依赖项

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'
    ...
}
,

尝试增强依赖性 yourproject / build.gradle

buildscript {
    ext.kotlin_version = '1.4.10'

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
    }
}

然后 yourproject / gradle / wrapper / gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip
,

添加此内容的 build.gradle 文件肯定是错误的。如果看到有两个文件,我们要选择build.gradle(Module:),打开时命名为build.gradle(:app)。

,

这将使用 Android 4.0 及更高版本解决。

如果还是不行请尝试设置数据绑定

替换

android {
       buildFeatures {
           dataBinding = true
       }
   }

由此

    android {
            buildFeatures.dataBinding = true
   }

它对我有用。

,

我的 Android Studio 是 3.2.1 版本,下面的代码对我有用。 Gradle Scripts -> build.gradle 文件,在android部分,添加以下几行:

   dataBinding {
      enabled = true
    }
,

https://developer.android.com/studio/preview 升级到最新版本

本文链接:https://www.f2er.com/3167017.html

大家都在问