Использование нескольких библиотек с другой версией SDK в Android Studio - PullRequest
0 голосов
/ 10 июня 2019

Есть несколько вопросов, но пока нет соответствующих ответов. В моем проекте android studio я использую несколько библиотек с другой версией. Теперь я столкнулся с ошибкой запустить проект. У меня есть несколько библиотек с двумя разными версиями 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

1 Ответ

0 голосов
/ 10 июня 2019

Вы должны установить конфигурацию для всего проекта в вашем файле 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"
        }
    }
}
...