我在Android应用中使用AppCompat库。最近,我决定迁移到AndroidX组件。因此,在我的gradle.properties
中,我采取了以下措施:
android.useAndroidX=true
android.enableJetifier=true
并采用build.gradle
文件中的appcompat依赖项:
implementation 'androidx.appcompat:appcompat:1.0.0'
但是奇怪的是,我可以使用生命周期,viewmodel等jetpack库而无需在此导入更多依赖项。有我不知道的隐藏功能允许我使用那些库吗?即使我从gradle文件中删除了“ implementation 'androidx.appcompat:appcompat:1.0.0'
”,它也可以正常工作而不会出现任何错误。现在我很困惑,有人可以给我一个合理的理由吗?我已经重建,删除了缓存,甚至我已经重新启动了PC几次,但是它可以工作。这怎么可能?顺便说一句,我的根级别build.gradle文件具有以下内容:
buildscript {
repositories {
google()
jcenter()
maven {
url "http://dl.bintray.com/glomadrian/maven"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "http://dl.bintray.com/glomadrian/maven"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
答案 0 :(得分:1)
基本上,架构组件本身都集成在 Android SDK 中,无论您是否使用它。这是因为它为您提供了开箱即用的SDK组件对Activity/Fragment
的 Lifecycle 的支持,这就是为什么您能够看到诸如 viewmodel&lifecycle 。
因此,导入androidx.appcompat:appcompat
工件将解决它对viewmodel和生命周期的内部依赖(即由于AppCompatActivity和其他组件所依赖),这就是您能够做到这一点的原因看到它。