gpt4 book ai didi

android - 在 Instant App 中应用插件 'kotlin-android' 会导致 "null cannot be cast to non-null type com.android.build.gradleBasePlugin"

转载 作者:IT老高 更新时间:2023-10-28 13:36:04 26 4
gpt4 key购买 nike

我一直在尝试将新发布的 Android Instant Apps 与 Kotlin 编程语言结合起来。使用以下(标准?)设置创建我的项目后,我在尝试时收到错误消息 "null cannot be cast to non-null type com.android.build.gradle.BasePlugin"构建应用程序。使用 Kotlin 可以与标准 'com.android.application' 模块配合使用;只有当我尝试在 Instant App 模块中使用它时才会引发错误。

顶级build.gradle:

buildscript {

repositories {
maven { url 'https://maven.google.com' }
jcenter()
}

dependencies {
classpath "com.android.tools.build:gradle:3.0.0-alpha1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4"
}
}

// ...

app 模块 build.gradle,Kotlin 在其中工作:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' // This will work.

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"


defaultConfig {
// ...
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
implementation project(':feature')
implementation project(':base')
}

base 模块 build.gradle,其中 Kotlin 工作:

apply plugin: 'com.android.feature'
apply plugin: 'kotlin-android' // This won't work.

android {

compileSdkVersion 25
buildToolsVersion "25.0.2"
baseFeature true
defaultConfig {
// ...
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
feature project(':tracker')
compile 'com.android.support:appcompat-v7:25.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'

// Kotlin standard library.
compile "org.jetbrains.kotlin:kotlin-stdlib:${gradleKotlinVersion}"
}

instantapp 模块 build.gradle:

apply plugin: 'com.android.instantapp'

dependencies {
implementation project(':feature')
implementation project(':base')
}

功能模块build.gradle:

apply plugin: 'com.android.feature'

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
// ...
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation project(':base')
testCompile 'junit:junit:4.12'
}

同样,app 模块在此配置下编译没有问题;另一方面,Android Studio/Gradle 给了我这个奇怪的 "null cannot be cast to non-null type com.android.build.gradle.BasePlugin" 错误消息,并建议重新下载依赖项并同步项目(完成)或重启 Android Studio。

Instant Apps 实际上与 Kotlin 编程语言兼容吗?我期待着你的回答:)

PS:我使用 Android Studio 3.0 Canary 1,并从 Canary channel 安装了用于构建工具等的最新更新。我的 Kotlin 插件也应该是最新的。

最佳答案

这在 Kotlin plugin v1.1.2-5 中得到解决.请更新您的版本,然后重试。

作为引用,这里跟踪以前插件版本的问题:

38393607 | Issue building Instant apps with Kotlin enabled

关于android - 在 Instant App 中应用插件 'kotlin-android' 会导致 "null cannot be cast to non-null type com.android.build.gradleBasePlugin",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44090551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com