L'application du plugin 'kotlin-android' dans une application instantanée indique que "null ne peut pas être transmis au type non nul" com.android.build.gradleBasePlugin "

J'ai essayé de combiner les nouvelles applications Android instantanément publiées avec le langage de programmation Kotlin. Après avoir créé mon projet à l'aide de la configuration suivante (standard?), J'ai une erreur avec le message "null ne peut pas être transmis à un type non nul com.android.build.gradle.BasePlugin" lorsque j'essaie de créer l'application. L'utilisation de Kotlin fonctionne bien avec les modules standard «com.android.application» ; L'erreur est lancée uniquement lorsque j'essaie de l'utiliser dans un module d'application instantanée.

Haut niveau 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" } } // ... 

Module d' application build.gradle , dans lequel Kotlin fonctionne:

 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') } 

Module de base build.gradle , dans lequel Kotlin ne fonctionne pas :

 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}" } 

Module instantapp build.gradle :

 apply plugin: 'com.android.instantapp' dependencies { implementation project(':feature') implementation project(':base') } 

Module de fonctionnalité 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' } 

Encore une fois, le module de l' application compile sans problèmes avec cette configuration; D'autre part, Android Studio / Gradle me donne cet étrange "null ne peut pas être transmis au message d'erreur non-null type com.android.build.gradle.BasePlugin" , avec les suggestions pour redéfinir les dépendances et synchroniser le projet (fait ) Ou redémarrez Android Studio.

Les applications instantanées sont-elles réellement compatibles avec le langage de programmation Kotlin? J'attends vos réponses 🙂

PS: j'utilise Android Studio 3.0 Canary 1, avec les dernières mises à jour installées à partir de Canary Channel pour les outils de création, etc. Mon plugin Kotlin devrait également être à jour.

  • Propriété Kotlin: "Le paramètre de type d'une propriété doit être utilisé dans son type de récepteur"
  • Kotlin et ArgumentCaptor - IllegalStateException
  • Android Data Binding et Kotlin
  • WeakReference ne fonctionne pas à Kotlin
  • Kotlin - Lateinit VS Any? = Nul
  • Est-ce que butterknife 7.x travaille avec Kotlin M14?
  • La propriété doit être initialisée ou être abstraite
  • Android Kotlin: java.lang.NoClassDefFoundError: résolution échouée de: <KotlinObject>
  • One Solution collect form web for “L'application du plugin 'kotlin-android' dans une application instantanée indique que "null ne peut pas être transmis au type non nul" com.android.build.gradleBasePlugin "”

    Ceci est abordé dans le plugin Kotlin v1.1.2-5 . Veuillez mettre à jour votre version et réessayer.

    Pour référence, le problème avec les versions précédentes du plugin est suivi ici:

    38393607 | Problème de création d'applications instantanées avec Kotlin activé

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.