Как решить "Неразрешенная ссылка: арка" из "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%.

Другие вопросы по тегам