Android/Kotlin: неразрешенная ссылка: древесина
Я пытаюсь написать библиотеку kotlin для Android и не могу включить древесину. Я всегда получаю следующую ошибку:
Error:error: unresolved reference: timber
У меня есть это в моем build.gradle:
apply plugin: 'java-library'
apply plugin: 'kotlin'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
buildscript {
ext.kotlin_version = '1.1.2-4'
repositories {
maven {url "https://maven.google.com"}
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
compile 'com.jakewharton.timber:timber:4.5.1'
testCompile 'junit:junit:4.12'
}
Мой исходный файл очень прост на данный момент:
package net.mbonnin.test
import timber.log.Timber
class Main() {
fun main() {
Timber.d("hello world")
}
}
Сбой в операторе импорта.
Я использую Android Studio 3 Canary 4 и Kotlin 1.1.2-4. Есть идеи, что я делаю не так? Или древесина не пригодна для использования в Котлине?
1 ответ
apply plugin: 'java-library'
apply plugin: 'kotlin'
Вы не используете какой-либо плагин для Android и, следовательно, не знаете, как справиться @aar
артефакты. Но это артефакты по умолчанию при использовании библиотек Android. Иногда вы можете найти @jar
артефакты с зависимостью, но уже не так часто. А тимбер
Регистратор с небольшим расширяемым API, который предоставляет утилиту поверх обычного класса Android в журнале.
Вы могли бы научить Gradle понимать @aar
файлы, но тогда вы столкнетесь с проблемами с зависимостями Android при использовании Timber.
Таким образом, вместо этого вы должны сделать свой модуль библиотекой Android Kotlin.
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'