android jetpack项目给出了archlifecycleversion构建错误

问题描述 投票:3回答:3

我是Android开发新手,刚刚在本教程中创建了我在android studio 3.2(canary)中的第一个“hello world”项目。 https://developer.android.com/jetpack/docs/getting-started

然后我只是做了Build-> make项目试图构建并给了我以下错误。

无法为org.gradle.api.Project类型的根项目'JetpackHelloWorld'获取未知属性'archLifecycleVersion'。

UPDATE

依赖

以下是我的app文件夹build.gradle文件中的dependencies标记

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
android android-studio kotlin android-jetpack
3个回答
3
投票

$rootProject.archLifecycleVersion替换为实际版本,我想现在这是1.1.1


2
投票

在你的应用程序Gradle文件(build.gradle,你应该看到它右边的“app”),你可能有

implementation 'android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion'

将其更改为:

implementation 'android.arch.lifecycle:extensions:1.1.1'

或者将其添加到实施行的顶部

def archLifecycleVersion = 1.1.1

1
投票

我认为部分(如果不是全部)代码来自这个代码库:https://codelabs.developers.google.com/codelabs/android-room-with-a-view/

在代码库的第三部分,标题为“更新gradle文件”,他们使用这些行(在模块的build.gradle中)导入Room和Lifecycle组件:

// Room components
implementation "android.arch.persistence.room:runtime:$rootProject.roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
androidTestImplementation "android.arch.persistence.room:testing:$rootProject.roomVersion"

// Lifecycle components
implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"

因此,这些“roomVersion”和“archLifecycleVersion”是您必须在主build.gradle文件中定义的变量。在示例中,他们使用以下值:

ext {
   roomVersion = '1.0.0'
   archLifecycleVersion = '1.1.0'
}

但我实际上对两个变量使用了“1.1.1”并且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.