Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using multiple library with different sdk version in android studio

There are several questions but no relevant answer yet. In my android studio project, I use several libraries with a different version. Now I facing error to run the project. I have some libraries with two different SDK version. One is sdk=25.3.1 and another is sdk=28.0.0 Here is my different build.gradle file.

My Project build.gradle file

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
}

app: build.gradle file

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'
}

My Library build.gradle file

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'
  }
}

Another Library 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'

  }

The following error occur..

Android dependency 'com.android.support:appcompat-v7' has different version >for the compile (25.3.1) and runtime (28.0.0) classpath. You should manually >set the same version via DependencyResolution

like image 790
Coders_Ripon Avatar asked Aug 27 '26 07:08

Coders_Ripon


1 Answers

You have to set the config for all project in your build.gradle file

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

}

then in your apps build.gradle file replace config for all other lib

 configurations.all {
    resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support') {
            details.useVersion "28.0.0"
        }
    }
}
like image 170
Milan Pansuriya Avatar answered Aug 28 '26 21:08

Milan Pansuriya



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!