Модуль библиотеки Android не компилируется при использовании классов из чистого модуля Kotlin

У меня есть проект, использующий эту структуру: https://github.com/android10/Android-CleanArchitecture , и я пытаюсь преобразовать его в Kotlin.

Модуль домена компилируется просто отлично, но когда я пытаюсь скомпилировать модуль данных, я получаю следующую ошибку:

Unresolved reference: ThreadExecutor` 

и некоторые другие подобные ошибки.

Эти ошибки касаются интерфейсов, dataclass или синглетов Dagger. Похоже, что модуль данных не может найти некоторые объекты из модуля домена (хотя IntelliJ не показывает ошибок в редакторе).

Вот интерфейс ThreadExecutor:

 package com.company.app.domain.executor import java.util.concurrent.Executor interface ThreadExecutor : Executor 

Файл build.gradle для модуля домена:

 apply plugin: 'java' apply plugin: 'kotlin' //noinspection GroovyUnusedAssignment sourceCompatibility = JavaVersion.VERSION_1_7 //noinspection GroovyUnusedAssignment targetCompatibility = JavaVersion.VERSION_1_7 buildscript { repositories { mavenCentral() } } dependencies { testCompile 'junit:junit:4.12' compile 'io.reactivex.rxjava2:rxjava:2.1.3' compile 'io.reactivex.rxjava2:rxkotlin:2.1.0' compile 'com.google.guava:guava:22.0-android' compile 'javax.inject:javax.inject:1' compile 'joda-time:joda-time:2.9.9' } repositories { mavenCentral() } compileKotlin { kotlinOptions { jvmTarget = "1.6" } } compileTestKotlin { kotlinOptions { jvmTarget = "1.6" } } 

Глобальный файл build.gradle проекта:

 // Top-level build file where you can add configuration options common to all sub-projects/modules. apply plugin: 'kotlin' buildscript { ext.kotlin_version = '1.1.4-3' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { jcenter() mavenCentral() } configurations.all { resolutionStrategy.force 'com.google.code.findbugs:jsr305:2.0.1' } } clean { delete rootProject.buildDir } 

И, наконец, модуль data build.gralde:

 buildscript { repositories { mavenCentral() } } apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { publishNonDefault true compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { minSdkVersion 23 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } dependencies { compile project(':domain') compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.1.3' compile 'io.reactivex.rxjava2:rxkotlin:2.1.0' compile 'com.google.code.gson:gson:2.8.1' compile 'com.squareup.okhttp3:okhttp:3.8.1' kapt 'com.google.dagger:dagger-compiler:2.11' compile 'com.google.dagger:dagger:2.11' androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.0.0-alpha1' testCompile 'junit:junit:4.12' } repositories { mavenCentral() } 

Похоже, что jar домена, составленный из Kotlin, не подвергает эти объекты тому, как ожидает модуль данных, но в настоящее время я не знаю, почему.

Я наконец нашел, почему он не компилируется: мне пришлось называть «rebuild project», а не «make project», чтобы Android Studio учитывала все изменения.

Intereting Posts
Макеты Anko – отличительные макеты в applyRecursively Как преобразовать символ в значение ascii на языке kotlin Как создать параметр конструктора типа «Единица» Kotlin с параметром одного типа с kotlinpoet? Как документировать параметр первичного конструктора с помощью Kotlin Dokka Как работает синтаксис доступа к свойствам Kotlin для классов Java (например, EditText setText)? Как создать обработчик Generic Response для ошибки и проверки ответа с помощью модифицированных, rxjava и кинжалов Ошибка подтверждения контракта в корде Hello World pt 2 Можно ли связать член класса в кодеин? Strange java.lang.ClassCastException при использовании вызова Главная Ui Freezes Реализовать Hashmap с разными типами значений в Котлине Сгенерированный метод toString для включения членов из базового класса? Общие рамки Котлина для класса Фрагмент Назад стоп из второго фрагмента в первый фрагмент что эквивалентно этому java-коду kotlin