我正在尝试用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再一次,除了失败和沮丧之外,什么都没有。不知道为什么这永远无法正常工作,总是让我保持旧的方式。我做错了什么,为什么不起作用?
我面对与红色的android标签视图相同的东西。我如何解决错误,我只是从构建选项中重建项目。(构建 ->重建项目),我看到ProgrogruardFiles系列不像所有字符串一样,都不像所有字符串一样。我用
代替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")
}
我也遇到了同样的问题,在将kotlin version
从1.3.21
升级到1.3.71
之后,还将com.android.tools.build:gradle version
从3.3.2
更改为CC_5
也许这将帮助您解决错误。
浪费时间4小时后,我解决了这些问题。
- 在您的项目根文件夹中查找
gradlew
。 - 右键单击它,然后打开 - >终端。
- 写
./gradlew tasks
命令并输入。 - 如果在您的
build.gradle
文件中显示任何错误,请修复并重新运行./gradlew tasks
命令,直到解决所有错误并可以看到构建成功。 - 现在同步您的gradle文件。
同步完成后,所有扩展功能将被Android Studio识别,红色标记将消失。
对我有用的是:
plugins {
id("com.android.library")
}
然后我可以正常使用:
android {
namespace = "com.example.whatever"
}
逐步逐步
- 更新到Gradle包装器5.0或更高版本
-
重命名root-> settings.gradle to root-> settings.gradle.kts和in file
包括':app'//之前
包括(":app")//
之后 重命名root-> build.gradle to 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到app-> build.gradle.kts和与该文件中相同的更改