3

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

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

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

更新

依赖项

以下是我的应用程序文件夹 build.gradle 文件中的依赖项标签

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'
}
4

3 回答 3

3

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

于 2018-05-14T12:21:08.210 回答
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
于 2018-05-14T12:22:40.550 回答
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”并且它有效。

于 2018-08-30T10:03:12.537 回答