首页 > 解决方案 > 无法使用 android.arch.lifecycle:extensions 和 com.android.support:preference

问题描述

我需要LifecycleObserver在我的应用程序中使用(已经存在的)。

这是我的build.gradle(应用程序):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "it.tux.app"
        minSdkVersion 24
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation 'com.android.support:preference-v7:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation "com.android.support:support-core-utils:27.1.1"
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:support-v13:27.1.1'
    implementation 'io.github.controlwear:virtualjoystick:1.9.2'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.jjoe64:graphview:4.2.2'
    testImplementation 'junit:junit:4.12'
}

当然我也放了:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

在项目中build.gradle

在 gradle sync 之后,我得到一个关于com.android.support:preference-v7:27.1.1androidx.*依赖项之间不兼容的错误。如果我尝试编译事情会变得更糟。我怎样才能解决这个问题?

标签: androidgradle

解决方案


好像你已经混合了支持库和androidX。

将所有内容迁移到 androidX。按照这个官方指南

1.使用 Android Studio 3.2 及更高版本,您可以通过从菜单栏中选择 Refactor > Migrate to AndroidX 将现有项目迁移到 AndroidX。

2.在您的 gradle.properties 文件中,添加以下行:

android.useAndroidX=true

android.enableJetifier=true

另请查看答案以获取详细信息。


推荐阅读