Как решить "Неразрешенная ссылка: арка" из "import android.arch.lifecycle"?
В файле Kotlin у меня есть "Неразрешенная ссылка: арка".
import android.arch.lifecycle.Lifecycle
import android.arch.lifecycle.LifecycleObserver
import android.arch.lifecycle.OnLifecycleEvent
У меня нет опыта в программировании, но я хотел начать и учиться на практике. Я пытаюсь скопировать приложение Android из этой статьи: https://heartbeat.fritz.ai/creating-an-android-app-with-snapchat-style-filters-in-7-steps-using-firebases-ml-kit-e79946e99688
У меня есть Android Studio 3.3, Kotlin компилятор 1.3 и Gradle 4.10.1.
Я прочитал несколько веток с похожими проблемами, и я попытался: 1) Очистить, Перестроить, Синхронизировать с Gradle 2) Перезагрузить компьютер 3) Отменить кеширование и перезапустить AS 4) Удалить.idea и перезапустить проект 5) Поиск любых несоответствий в плагинах но, насколько мне известно, я не нашел их, все в последней стабильной версии.
Мой проект build.gradle:
buildscript {
ext.kotlin_version = '1.3.20'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
Мое приложение build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.zqc.ml.nautilus"
minSdkVersion 21
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-ml-vision:18.0.2'
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation 'com.otaliastudios:cameraview:1.5.1'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.core:core-ktx:1.1.0-alpha03'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
apply plugin: 'com.google.gms.google-services'
Он должен работать правильно, но сборка не удалась
Execution failed for task ':app:compileDebugKotlin'.
Лог указывает на эту "неразрешенную ссылку: арка" и ничего больше.
2 ответа
Вы используете androidx
артефакты, следовательно, классы, которые раньше были в android.arch.lifecycle
сейчас в androidx.lifecycle
согласно документации по миграции на AndroidX.
Я изменил свою зависимость с
testImplementation "android.arch.core:core-testing:2.2.0"
к
testImplementation "androidx.arch.core:core-testing:2.2.0"
Это потому, что мой проект рекомендует импорт изandroidx
артефакты не изandroid
.
Моя проблема решилась на 100%.