Использование нескольких библиотек с разными версиями sdk в студии Android

Есть несколько вопросов, но пока нет соответствующего ответа. В моем проекте студии Android я использую несколько библиотек с другой версией. Теперь я столкнулся с ошибкой при запуске проекта. У меня есть несколько библиотек с двумя разными версиями SDK. Один — sdk=25.3.1, а другой — sdk=28.0.0 Вот мой другой файл build.gradle.

Мой проект build.gradle файл

buildscript {
repositories {
    google()
    jcenter()
}
dependencies {

    classpath 'com.android.tools.build:gradle:3.0.0'
    classpath 'com.google.gms:google-services:3.2.0'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
  }
}

allprojects {
repositories {
    google()
    maven { url 'http://raw.github.com/saki4510t/libcommon/master/repository/' }
    jcenter()
  }
}

task clean(type: Delete) {
delete rootProject.buildDir
}

ext {
supportLibraryVersion = '28.0.0'  // variable that can be referenced to keep support libs consistent
supportLibVersion = '25.3.1'
commonLibVersion= '1.5.20'
//versionBuildTool = '26.0.2'
//versionCompiler = 25
//versionTarget = 22
//versionNameString = '1.0.0'
javaSourceCompatibility = JavaVersion.VERSION_1_7
javaTargetCompatibility = JavaVersion.VERSION_1_7
}

приложение: файл build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
    applicationId "com.jiangdg.usbcamera"
    minSdkVersion 19
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile project(':libusbcamera')
compile project(':libmlkit')
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.android.support:design:25.3.1'
}

Файл build.gradle моей библиотеки

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group='com.github.jiangdongguo'

android {
          compileSdkVersion 25
          buildToolsVersion '26.0.2'

          defaultConfig {
                          minSdkVersion 19
                          targetSdkVersion 22
                          versionCode 1
                          versionName "1.0"

                          testInstrumentationRunner 
                          "android.support.test.runner.AndroidJUnitRunner"
        }
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}


dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile("com.serenegiant:common:${commonLibVersion}") {
    exclude module: 'support-v4'
  }
}

Еще одна библиотека build.gradle

apply plugin: 'com.android.library'

  android {
           compileSdkVersion 28
          defaultConfig {

    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
aaptOptions {
    noCompress "tflite"
}
}

   dependencies {
                 implementation fileTree(dir: 'libs', include: ['*.jar'])
                 implementation 'com.android.support:appcompat-v7:28.0.0'
                 implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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'


implementation 'com.google.firebase:firebase-ml-vision:18.0.1'
implementation 'com.google.firebase:firebase-ml-vision-image-label-model:17.0.2'
implementation 'co`apply plugin: 'com.google.gms.google-services'

  }

Возникает следующая ошибка..

Зависимость Android 'com.android.support:appcompat-v7' имеет другую версию> для пути к классам компиляции (25.3.1) и среды выполнения (28.0.0). Вы должны вручную > установить ту же версию через DependencyResolution


person Coders_Ripon    schedule 10.06.2019    source источник


Ответы (1)


Вы должны установить конфигурацию для всего проекта в файле build.gradle.

subprojects {
afterEvaluate {
    project -> if (project.hasProperty("android")) {
        android {
            compileSdkVersion 28
            buildToolsVersion '28.0.0'
        }
    }
}

}

затем в файле build.gradle ваших приложений замените конфигурацию для всех остальных lib

 configurations.all {
    resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support') {
            details.useVersion "28.0.0"
        }
    }
}
person Milan Pansuriya    schedule 10.06.2019