Android Studio 3.0 Compile Issue (Cannot choose between Configurations)
Solution 1
Error:Cannot choose between the following configurations of project.......
There may be gradle writing problems When I changed to the following wording there is no such error
// compile project(':MPChartLib')
implementation project(':MPChartLib')
Maybe when the reference depends on other modules should be written in this implementation
Solution 2
If you're using the android-apt plugin for annotation processing, try removing that plugin and replacing all of the apt some_dependency
references with annotationProcessor some_dependency
as suggested in the migration guide for the Android Gradle Plugin 3.0.0.
Solution 3
for AndroidStudio 3.0+, mainMoudle has buildTypes and buildTypes as same as libModule buildTypes and buildTypes ,it would like:
mainModule:
buildTypes {
release {
buildConfigField "boolean", "LOG_DEBUG", "false"
zipAlignEnabled true
shrinkResources true
minifyEnabled true
proguardFiles 'proguard-rules.pro'
}
debug {
buildConfigField "boolean", "LOG_DEBUG", "true"
zipAlignEnabled true
shrinkResources false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug2{
}
}
libModule:
buildTypes {
release {
}
debug {
}
debug2{
}
}
or you can use matchingFallbacks solve this click
Solution 4
When I updated my project from API level 23 to 27 and Gradle to 3.1 this error comes that
Can not choose between different configuration
So to solve this problem.
replace the
compile project(':your projectName')
with
implementation project(':projectname')
in Gradle, this solves the problem.
Solution 5
For me, run into the same error on Android Studio 3.5.2, with a different cause. I was trying to add an application module as a library.
I resolved it by simply converting the application module to a library module .
Comments
-
Ayohaych about 3 years
Issue with latest 3.0 build (Beta 2) My project has 1 sub module by a 3rd party so I only have access to their build.gradle.
My project has 3 flavours, snap, uat, production. Each has 2 build types, debug and release. When I try build I get this.
Error:Cannot choose between the following configurations of project :lp_messaging_sdk: - debugApiElements - debugRuntimeElements - releaseApiElements - releaseRuntimeElements All of them match the consumer attributes: - Configuration 'debugApiElements': - Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-api' but wasn't required. - Configuration 'debugRuntimeElements': - Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-runtime' but wasn't required. - Configuration 'releaseApiElements': - Found com.android.build.api.attributes.BuildTypeAttr 'release' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-api' but wasn't required. - Configuration 'releaseRuntimeElements': - Found com.android.build.api.attributes.BuildTypeAttr 'release' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-runtime' but wasn't required.
I read there was issues with sub modules and build types but then read it was fixed. You had to add the same build types or something to the sub modules build.gradle and then add
buildTypeMatching 'debug', 'release'
When I do this however, I get this error,
Error:Could not select value from candidates [debug, release] using AlternateDisambiguationRule.BuildTypeRule. apply plugin: 'com.android.application' android { repositories { flatDir { dirs project(':lp_messaging_sdk').file('aars') } } // Android parameters compileSdkVersion = 26 buildToolsVersion = '26.0.1' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } dexOptions { preDexLibraries true } defaultConfig { minSdkVersion 19 versionName buildName versionCode buildVersion multiDexEnabled true resConfigs "en", "fr", "fr-rCA" } signingConfigs { release { } } flavorDimensions "default" productFlavors { snap { ext.betaDistributionGroupAliases = "INTERNAL" ext.betaDistributionReleaseNotesFilePath = 'changelog.txt' ext.betaDistributionNotifications = true dimension "default" } uat { ext.betaDistributionGroupAliases = "INTERNAL" ext.betaDistributionNotifications = true } production { } } buildTypes { debug { versionNameSuffix createVersionNameSuffix() applicationIdSuffix '.debug' minifyEnabled true testCoverageEnabled false buildConfigField "String", "PLAY_STORE_VERSION_NAME", '"' + PLAY_STORE_VERSION_NAME + '"' // Workaround for : https://code.google.com/p/android/issues/detail?id=212882 proguardFiles fileTree(dir: 'proguard', include: ['*.pro']).asList().toArray() ext.enableCrashlytics = false } release { versionNameSuffix createVersionNameSuffix() minifyEnabled true testCoverageEnabled = false signingConfig signingConfigs.release buildConfigField "String", "PLAY_STORE_VERSION_NAME", '"' + PLAY_STORE_VERSION_NAME + '"' // Workaround for : https://code.google.com/p/android/issues/detail?id=212882 proguardFiles fileTree(dir: 'proguard', include: ['*.pro']).asList().toArray() } } //Used to ignore duplicated entries added to meta-inf packagingOptions { exclude 'LICENSE.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license' exclude 'META-INF/license.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice' exclude 'META-INF/notice.txt' exclude 'META-INF/services/javax.annotation.processing.Processor' } dexOptions { javaMaxHeapSize "2048m" dexInProcess true } lintOptions { abortOnError true xmlReport true htmlReport true disable 'MissingTranslation', 'InvalidPackage' disable 'GradleCompatible', 'GradleCompatible' disable 'NewApi', 'NewApi' disable 'GradleDependency' disable 'UnusedResources' disable 'IconDensities' disable 'TypographyDashes' disable 'ContentDescription' htmlOutput file("$project.buildDir/reports/lint/lint-result.html") xmlOutput file("$project.buildDir/reports/lint/lint-result.xml") } testOptions { unitTests.returnDefaultValues = true } } greendao { schemaVersion 13 targetGenDir 'src/main/java/' } ext.betaDistributionReleaseNotes = System.getenv("CHANGELOG") def createVersionNameSuffix() { def buildNumber = System.env.BUILD_NUMBER def buildTimestamp = new Date().format('HH:mm dd/MM/yy') return buildNumber ? " ($buildNumber)" : " ($buildTimestamp)" } def getBuildVersionFromName(String buildName) { List data = buildName.tokenize(".") String resultString = "19"; for (String s : data) { resultString += s; } if (System.env.BUILD_NUMBER) { resultString += System.env.BUILD_NUMBER } return Integer.parseInt(resultString); } //Verify the app before creating a Pull Request task verifyPR verifyPR.dependsOn('clean') verifyPR.dependsOn('lint') verifyPR.dependsOn('checkstyle') verifyPR.dependsOn('pmd') verifyPR.dependsOn('testSnapDebugUnitTest') dependencies { // Android Dependencies compile 'com.android.support:appcompat-v7:26.0.1' compile 'com.android.support:design:26.0.1' compile 'com.android.support:recyclerview-v7:26.0.1' compile 'com.android.support:multidex:1.0.2' // Dagger Dependencies apt 'com.google.dagger:dagger-compiler:2.11' compile 'org.glassfish:javax.annotation:10.0-b28' compile 'com.google.dagger:dagger:2.11' // Rx Dependencies compile 'io.reactivex:rxandroid:1.2.1' compile 'io.reactivex:rxjava:1.3.0' compile 'com.jakewharton.rxbinding:rxbinding-appcompat-v7:0.4.0' compile 'com.jakewharton.rxbinding:rxbinding-support-v4:0.4.0' compile 'com.squareup.whorlwind:whorlwind:1.0.1' compile 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar' compile 'com.jenzz:RxAppState:2.0.0' // Tools compile 'com.crashlytics.sdk.android:crashlytics:2.6.5' // ButterKnife compile 'com.jakewharton:butterknife:8.4.0' // Google Maps compile 'com.google.android.gms:play-services-maps:11.0.4' compile "com.google.android.gms:play-services-analytics:11.0.4" compile 'com.google.android.gms:play-services-location:11.0.4' compile 'com.google.android.gms:play-services-places:11.0.4' compile 'com.google.android.gms:play-services-gcm:11.0.4' // Geofence compile('pl.charmas.android:android-reactive-location:0.10@aar') { transitive = true } // Retrofit compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.3.0' // OKHTTP compile 'com.squareup.okhttp:okhttp-urlconnection:2.7.5' // Libphonenumber compile 'com.googlecode.libphonenumber:libphonenumber:7.3.2' // UI compile 'com.tubb.smrv:swipemenu-recyclerview:5.0.2' // EventBus compile 'org.greenrobot:eventbus:3.0.0' // Database compile 'org.greenrobot:greendao:3.2.0' // Chuck HTTP Inspector debugCompile 'com.readystatesoftware.chuck:library:1.0.4' releaseCompile 'com.readystatesoftware.chuck:library-no-op:1.0.4' // ViewPager Indicator compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1' // Amplitude compile 'com.amplitude:android-sdk:2.13.2' // TESTS testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.10.19" testCompile "org.powermock:powermock-module-junit4:1.6.5" testCompile "org.powermock:powermock-module-junit4-rule:1.6.4" testCompile "org.powermock:powermock-api-mockito:1.6.5" testCompile "org.powermock:powermock-classloading-xstream:1.6.4" compile project(':lp_messaging_sdk') }
And here is the 3rd party library build.gradle
apply plugin: 'com.android.library' android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { minSdkVersion 14 targetSdkVersion 26 versionCode 250 versionName "2.5.0" } flavorDimensions "default" productFlavors { snap { ext.betaDistributionGroupAliases = "INTERNAL" ext.betaDistributionReleaseNotesFilePath = 'changelog.txt' ext.betaDistributionNotifications = true dimension "default" } uat { ext.betaDistributionGroupAliases = "INTERNAL" ext.betaDistributionNotifications = true } production { } } signingConfigs { release { } } buildTypeMatching 'snap', 'debug', 'release' buildTypes { debug { applicationIdSuffix '.debug' minifyEnabled true testCoverageEnabled false buildConfigField "String", "PLAY_STORE_VERSION_NAME", '"' + PLAY_STORE_VERSION_NAME + '"' // Workaround for : https://code.google.com/p/android/issues/detail?id=212882 proguardFiles fileTree(dir: 'proguard', include: ['*.pro']).asList().toArray() ext.enableCrashlytics = false } release { minifyEnabled true testCoverageEnabled = false signingConfig signingConfigs.release buildConfigField "String", "PLAY_STORE_VERSION_NAME", '"' + PLAY_STORE_VERSION_NAME + '"' // Workaround for : https://code.google.com/p/android/issues/detail?id=212882 proguardFiles fileTree(dir: 'proguard', include: ['*.pro']).asList().toArray() } } defaultConfig { consumerProguardFiles 'proguard.cfg' } repositories { flatDir { dirs 'aars' } } lintOptions { disable 'InvalidPackage' } } dependencies { compile 'com.android.support:appcompat-v7:26.0.1' compile 'com.android.support:design:26.0.1' compile 'com.android.support:recyclerview-v7:26.0.1' compile 'com.android.support:percent:26.0.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.neovisionaries:nv-websocket-client:1.31' compile 'com.squareup.okhttp3:okhttp:3.8.0' compile(name: 'infra', ext: 'aar') compile(name: 'messaging', ext: 'aar') compile(name: 'messaging_ui', ext: 'aar') compile(name: 'ui', ext: 'aar') }
Does anybody know how I can solve this issue? Thanks
-
bakoyaro over 6 yearsIs there anything you can add to your answer to help others decipher it's meaning?
-
Admin over 6 yearsand I use the gradle version "4.1" and "4.3" , Can not solve this problem, In addition to changing this wording. but it has a new problem Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead.
-
LordParsley over 6 yearsSee "Migrate dependency configurations for local modules" in developer.android.com/studio/build/….
-
ila over 6 yearsAwesome solution thanks ! replaces kapt project(:processor) with annotationProcessor project(:processor)