此文档展示了如何为 Androidx Activity API 添加依赖项。那里提到要声明
androidx.activity:activity-ktx:$activity_version
。在我的项目中,我声明的 Androidx 依赖项只有 appcompat
、core
、lifecycle
、constraintlayout
和 recyclerview
。但在我的项目中我仍然可以使用androidx.activity.result.contracts.ActivityResultContracts
。这怎么可能?
编辑:我注释掉了所有第 3 方依赖项,现在,我的整个依赖项部分如下:
dependencies {
implementation(fileTree(mapOf("include" to listOf("*.jar"), "dir" to "libs")))
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test:runner:1.4.0")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
// Materials design
implementation("com.google.android.material:material:1.4.0")
implementation("androidx.appcompat:appcompat:1.3.1")
implementation("androidx.core:core-ktx:1.6.0")
implementation("androidx.recyclerview:recyclerview:1.2.1")
implementation("androidx.constraintlayout:constraintlayout:2.1.0")
val lifecycleVersion = "2.4.0-alpha03"
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion")
}
我仍然可以在我的项目中导入 any
androidx.*
库。
androidx.appcompat:appcompat:1.3.1
取决于 androidx.activity:activity:1.2.4
。
所以你的
implementation("androidx.appcompat:appcompat:1.3.1")
线通过传递依赖拉入androidx.activity:activity:1.2.4
。
我还发现了
com.google.android.material
进口androidx.activity
在更新使用 api 33 编译的项目的依赖项时,这一点变得非常明显
Dependency 'androidx.activity:activity:1.8.0-alpha06' requires libraries
and applications that depend on it to compile against version 34 or later
of the Android APIs.
:app is currently compiled against android-33.