我正在尝试使用kotlin-dsl配置我的gradle设置。我的项目gradle看起来像这样:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:3.3.2")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21")
}
}
allprojects {
repositories {
google()
jcenter()
}
}
和我的应用级gradle:
plugins {
id("com.android.application")
id("kotlin-android")
}
android { // marked red
}
两个文件名均为build.gradle.kts。 Gradle版本是5.2.1。 我有一个问题,IDE无法识别app-gradle文件中的android {}部分,我无法配置诸如compileSdkVersion等之类的东西。我又一次尝试将项目迁移到kotlin-dsl再一次,只有失败和沮丧。不知道为什么这永远不会起作用,总是让我保持旧的方式。 我在做什么错,为什么那没用?
答案 0 :(得分:1)
在将kotlin version
从1.3.21
升级到1.3.71
并将com.android.tools.build:gradle version
从3.3.2
更改为3.5.3
之后,我也遇到了同样的问题
也许这可以帮助您解决错误。
答案 1 :(得分:0)
我从未见过这样的代码:
plugins {
id("com.android.application")
id("kotlin-android")
}
尝试使用此代码:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
我已成功使用如下所示的插件块运行应用程序。
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
}
我发现使用kotlin-dsl的存储库:https://github.com/rt1shnik/Bandhook-Kotlin。也许会有所帮助。
答案 2 :(得分:0)
逐步进行
重命名root-> settings.gradle到root-> settings.gradle.kts并在文件中
include':app'//之前
include(“:app”)//之后
重命名root-> build.gradle到root-> build.gradle.kts,并执行与该文件相同的更改
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath("com.android.tools.build:gradle:3.3.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11")
}
}
allprojects {
repositories {
jcenter()
google()
}
}
tasks {
val clean by registering(Delete::class) {
delete(buildDir)
}
}
将应用程序重命名为-> build.gradle到应用程序-> build.gradle.kts,并且与在该文件中所做的更改相同
答案 3 :(得分:0)
我面临着与Android标签视图相同的红色问题。 我如何解决错误,我只是从Build选项重建项目。 (生成->重建项目),我发现progruardFiles行不是按照指南,因为所有字符串都必须用双引号引起来。我将其替换为
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
此后,我再次重建项目,Gradle建议我在解决问题后单击“在您的项目中添加依赖项”。
这是我的模块级Gradle
plugins {
id("com.android.application")
kotlin("android")
kotlin("android.extensions")
kotlin("kapt")
}
android {
compileSdkVersion(29)
defaultConfig {
applicationId = "com.example.app"
minSdkVersion(21)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")}
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" tolistOf("*.jar"))))
implementation ("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41")
implementation ("androidx.appcompat:appcompat:1.0.2")
implementation ("androidx.core:core-ktx:1.0.2")
implementation ("androidx.constraintlayout:constraintlayout:1.1.3")
testImplementation ("junit:junit:4.12")
androidTestImplementation ("androidx.test:runner:1.2.0")
androidTestImplementation ("androidx.test.espresso:espresso-core:3.2.0")
}