为什么我没有导入Androidx';你不接受必要的依赖关系吗?

为什么我没有导入Androidx';你不接受必要的依赖关系吗?,android,androidx,Android,Androidx,我在android应用程序中使用AppCompat库。最近我决定迁移到AndroidX组件。因此,在我的gradle.properties中,我采取了以下措施: android.useAndroidX=true android.enableJetifier=true 并在build.gradle文件中获取appcompat依赖项: implementation 'androidx.appcompat:appcompat:1.0.0' 但奇怪的是,我可以使用lifecycle、viewmode

我在android应用程序中使用AppCompat库。最近我决定迁移到AndroidX组件。因此,在我的
gradle.properties
中,我采取了以下措施:

android.useAndroidX=true
android.enableJetifier=true
并在
build.gradle
文件中获取appcompat依赖项:

implementation 'androidx.appcompat:appcompat:1.0.0'
但奇怪的是,我可以使用lifecycle、viewmodel等jetpack库,而无需导入更多依赖项。是否有任何隐藏的功能,我不知道这是允许我使用这些库?即使我从gradle文件中删除“
实现”androidx.appcompat:appcompat:1.0.0”
,它也不会出现任何编译错误。现在我很困惑,有人能给我一个合理的理由吗?我已经重建,删除缓存,甚至我重新启动了我的电脑几次,但它的工作。这怎么可能?顺便说一句,我的根级别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
}

基本上,架构组件集成在Android SDK中,无论您是否使用它。这是因为它提供了对SDK组件中的
Activity/Fragment
生命周期的开箱即用支持&这就是为什么您能够看到诸如viewmodel和Lifecycle之类的jetpack库


因此,导入
androidx.appcompat:appcompat
工件将解决其对viewmodel和lifecycle的内部依赖性(即,由于AppCompatActivity和其他依赖于它的组件),这也是您能够看到它的原因。

选中“是”,默认情况下会导入它,因为appcompat库依赖于它。(此外,架构组件是在SDK组件本身上实现的,即使您是否在项目中使用它。即ViewModel&Lifecycle库)@JeelVankhede请将其作为答案发布,我会将其标记为解决方案,谢谢