Расширения Kotlin Android не работают в модуле библиотечного типа - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь реализовать расширения kotlin для Android, чтобы использовать аннотацию @Parcelize, если я внедряю ее в модуль приложения ('com.android.application'), она работает без проблем, но когда я пытаюсь использовать ее в модуль библиотечного типа ('com.android.library') у меня не работает.

Конфигурация моего gradle следующая:

Build.gradle // app

apply plugin: 'com.android.application'
apply plugin: 'jacoco'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

apply plugin: 'kotlin-allopen'
apply plugin: 'androidx.navigation.safeargs'

allOpen {
  annotation 'com.juanlondono.app.soldi.testing.OpenClass'
}

androidExtensions {
  experimental = true
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])

  // ------------------------- KOTLIN ------------------------- //
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.11"

 ... // Other Dependencies

}

Build.gradle // library

    apply plugin: 'com.android.library'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'

    dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])

      // ------------------------- KOTLIN ------------------------- //
      implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.11"

    ... // Other Dependencies
    }

Для настройки расширений kotlin android я основываюсь на следующем руководстве: Kotlinlang

После выполнения предыдущей конфигурации я пытаюсь реализовать аннотацию @Parcelize, и она не работает, я получаю сообщение неразрешенная ссылка Parcelize.

добавление

androidExtensions {
   experimental = true
} 

На выходе из библиотеки возникает следующая ошибка:

Cannot invoke method get() on null object

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:prodDebugRuntimeClasspath'.
   > A problem occurred configuring project ':model'.
      > Failed to notify dependency resolution listener.
         > Cannot invoke method get() on null object
         > Cannot invoke method get() on null object
         > Cannot invoke method get() on null object
         > Cannot invoke method get() on null object

На данный момент реализация Parcelable выполняется вручную.

...