@Parcelize не разрешен с экспериментальным режимом androidExtensions, установленным в true - PullRequest
0 голосов
/ 12 января 2019

После переключения на Gradle Kotlin DSL Gradle не может разрешить @Parcelize аннотацию или пакет import kotlinx.android.parcel.Parcelize (ошибка «Неразрешенная ссылка»). Это происходит со стабильным плагином Kotlin и последним Canary. Сбой сборки в Android Studio, а также с консоли при использовании Gradle Wrapper.

Верхний уровень 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
    }

от андроида до верхнего уровня, но результат все тот же. У кого-нибудь была похожая проблема, и ей удалось ее решить?

1 Ответ

0 голосов
/ 16 января 2019

Ах! Я нашел рабочий раствор . Установите экспериментальный флаг в Groovy androidExtensions.gradle, а затем apply в этом файле в вашем котлинском build.gradle.kts.

Я хотел передать его, но кредит идет на toxxmeister .

...