Я пытаюсь объединить недавно выпущенные Android Instant Apps с языком программирования Kotlin. После создания моего проекта, используя следующую (стандартную?) Настройку, я получаю сообщение об ошибке с сообщением "null не может быть применено к ненулевому типу 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"
}
}
// ...
модуль приложения 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')
}
базовый модуль 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'
}
Опять же, модуль приложения компилируется без проблем с этой конфигурацией; с другой стороны, Android Studio/ Gradle дает мне этот странный "null не может быть передан в непустой тип com.android.build.gradle.BasePlugin" сообщение об ошибке с предложениями повторно -загрузить зависимости и синхронизировать проект (сделать) или перезапустить Android Studio.
Действительно ли приложения Instant Apps совместимы с языком программирования Kotlin? Я с нетерпением жду ваших ответов:)
PS: Я использую Android Studio 3.0 Canary 1, с последними обновлениями, установленными из инструментов Canary Channel for Build и т.д. Мой плагин Kotlin также должен быть обновлен.