我正在尝试将lifecycle:extensions
添加到我的项目中,但无法使其正常工作。每次显示错误。
无法解析':app @ debug / compileClasspath'的依赖关系:无法解析android.arch.lifecycle:extensions:1.1.0。
我已经阅读了多个线程,但无法通过此处给出的答案使其起作用。 项目级别的收益是:
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
}
build.gradle是:
implementation "android.arch.lifecycle:extensions:1.1.0"
annotationProcessor "android.arch.lifecycle:compiler:1.1.0"
我如何使其起作用?我在Android Studio 3.1.2上。我也尝试导入一些github示例,但是每次都发生相同的错误。现在已经7个小时了,我一直在努力解决这个问题。
答案 0 :(得分:0)
我添加了这些:
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.media:media:1.1.0'
有时您可以新建一个项目,然后进行比较。
答案 1 :(得分:0)
我面对并幸运地解决了这个问题。
解决方案是: 您应该打开firebase_database flutter插件的build.gradle (项目根目录>> Flutter插件>> firebase_database-3.1.0 >> android >> build.gradle),您应该根据以下内容更改最后几行:
来自: `
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"
}
}
}
`
至: `
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"
}
}
}
`
我根据插件代码中的TODO找到了此解决方案,它涉及到github问题:https://gist.github.com/blasten/78e97b1d97a736d7e8dcc3f520cea3f0
它对我来说非常理想,并且可以解决上述完全相同的问题。
欢呼
答案 2 :(得分:0)
您正在使用androidx工件,因此,根据迁移到AndroidX文档,以前在android.arch.lifecycle中的类现在在androidx.lifecycle中。