我是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'
}
将$rootProject.archLifecycleVersion
替换为实际版本,我想现在这是1.1.1
在你的应用程序Gradle文件(build.gradle,你应该看到它右边的“app”),你可能有
implementation 'android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion'
将其更改为:
implementation 'android.arch.lifecycle:extensions:1.1.1'
或者将其添加到实施行的顶部
def archLifecycleVersion = 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”并且它有效。