Could not resolve android.arch.lifecycle:extensions:1.1.0

狂风中的少年 提交于 2020-08-06 17:33:32

问题


I am trying to add lifecycle:extensions to my project but i can not make it work . Each time it shows error .

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve android.arch.lifecycle:extensions:1.1.0.

I have already read several threads but could not make it work by the answers given there. Project level gradle is:

buildscript {
repositories {
   google()
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
}
}

allprojects {
repositories {
    google()
    maven { url 'https://maven.google.com' }
    jcenter()
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

And build.gradle is :

implementation "android.arch.lifecycle:extensions:1.1.0"
annotationProcessor "android.arch.lifecycle:compiler:1.1.0"

How can i make it work? I am on Android Studio 3.1.2 . I also tried to import some github samples but same error occurred each time . Now its been 7 hours i have been busting my head on this.


回答1:


You already added google() in the Build.gradle so, try adding the latest version:

implementation "android.arch.lifecycle:extensions:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"

Also, go to:

File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle

And uncheck the option if it is checked to download from repository.


In case it didn't help, updating gradle to the latest version will help:

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'
}



回答2:


I faced and fortunately solved this problem.

The solution is: You should open the firebase_database flutter plugin's build.gradle (project root >> Flutter Plugins >> firebase_database-3.1.0 >> android >> build.gradle) and you should change the last same lines according to the following:

from: `

if (!containsEmbeddingDependencies) {
  android {
    dependencies {
      def lifecycle_version = "1.1.1"
      compileOnly "android.arch.lifecycle:runtime:$lifecycle_version"
      compileOnly "android.arch.lifecycle:common:$lifecycle_version"
      compileOnly "android.arch.lifecycle:common-java8:$lifecycle_version"
    }
  }
}

`

to: `

if (!containsEmbeddingDependencies) {
  android {
    dependencies {
      def lifecycle_version = "2.1.0"
      api "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
      api "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
    }
  }
}

`

I found this solution according to a TODO in the plugin's code and it refers to a github issue: https://gist.github.com/blasten/78e97b1d97a736d7e8dcc3f520cea3f0

It works perfectly for me and solves the exact same issue above.

Cheers




回答3:


I add these:

 implementation 'androidx.legacy:legacy-support-v4:1.0.0'
 implementation 'androidx.media:media:1.1.0'

some times you can new a project ,then compare it.




回答4:


You're using androidx artifacts, therefore the classes that used to be in android.arch.lifecycle are now in androidx.lifecycle as per the Migrating to AndroidX documentation.



来源:https://stackoverflow.com/questions/52311406/could-not-resolve-android-arch-lifecycleextensions1-1-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!