切换到Gradle Kotlin DSL后,Gradle无法解析@Parcelize
注释或包import kotlinx.android.parcel.Parcelize
(“未解析的引用”错误)。这发生在稳定的Kotlin插件和最新的Canary插件中。在Android Studio中构建失败,在使用Gradle包装器时也会在控制台中失败。
顶级build.gradle.kts
buildscript {
repositories {
google()
mavenCentral()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:3.2.1")
classpath(kotlin("gradle-plugin", version = "1.3.11"))
}
}
allprojects {
repositories {
google()
mavenCentral()
jcenter()
}
}
应用程序build.gradle.kts
import org.jetbrains.kotlin.config.KotlinCompilerVersion
plugins {
id("com.android.application")
kotlin("android")
kotlin("android.extensions")
}
android {
compileSdkVersion(28)
defaultConfig {
applicationId = "com.a.b.c"
minSdkVersion(15)
targetSdkVersion(28)
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
}
}
// experimental mode is enabled -> @Parcelize should be resolved
androidExtensions {
isExperimental = true
}
}
dependencies {
implementation(kotlin("stdlib-jdk7", KotlinCompilerVersion.VERSION))
... other dependencies ...
我试着移动
androidExtensions {
isExperimental = true
}
从android到顶层,但结果仍然是一样的。有没有人有过类似的问题,并设法解决了这个问题?
发布于 2019-01-17 04:53:18
啊!我找到a working solution了。在基于Groovy的androidExtensions.gradle
中设置实验标志,然后在基于Kotlin的build.gradle.kts
中apply
该文件。
我想把它传递出去,但功劳要归功于toxxmeister。
https://stackoverflow.com/questions/54158395
复制相似问题