У меня есть этот пример проекта, который с модулем приложения и модулем lib (mylibrary) раньше работал должным образом с более старой версией Gradle. Вот рабочие копии кода Gradle:
app / build.grale
apply plugin: 'com.android.application'
android {
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "xyz.sahildave.flavoredlibrary"
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
app1521 {
minSdkVersion 15
targetSdkVersion 21
compileSdkVersion 21
applicationId "xyz.sahildave.flavoredlibrary.app1521"
}
app1524 {
minSdkVersion 15
targetSdkVersion 24
compileSdkVersion 24
applicationId "xyz.sahildave.flavoredlibrary.app1524"
}
}
}
configurations {
app1521DebugCompile
app1524DebugCompile
}
dependencies {
app1521DebugCompile project(path: ':mylibrary', configuration: 'sdk1521Debug')
app1524DebugCompile project(path: ':mylibrary', configuration: 'sdk1524Debug')
app1521DebugCompile 'com.android.support:appcompat-v7:21.0.3'
app1524DebugCompile 'com.android.support:appcompat-v7:24.2.0'
}
mylibrary / build.gradle
apply plugin: 'com.android.library'
android {
buildToolsVersion "24.0.2"
publishNonDefault true
defaultConfig {
versionCode 1
versionName "1.0"
}
productFlavors {
sdk1521 {
minSdkVersion 15
targetSdkVersion 21
compileSdkVersion 21
}
sdk1524 {
minSdkVersion 15
targetSdkVersion 24
compileSdkVersion 24
}
}
}
dependencies {
sdk1524Compile 'com.android.support:appcompat-v7:24.2.1'
sdk1521Compile 'com.android.support:appcompat-v7:21.0.3'
}
gradle / wrapper / gradle-wrapper. properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
project / build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
}
}
Однако счастье заканчивается здесь, когда я пытаюсь обновить их до последней версии gradle, сообщается о проблеме ниже
ERROR: Unable to resolve dependency for ':app@app1521DebugAndroidTest/compileClasspath': Could not resolve project :mylibrary.
Show Details
Affected Modules: app
Вот мой обновленный код, все, что я сделал, было
- обновить все SDKVersion для всей компиляции / цели до 29, minSdkVersion до 21
- добавить flavourDimensions ('main)
- обновить версию инструмента сборки до "29.0.2"
- обновить gradle до gradle-5.6.4-all.zip
- обновить скрипт gradle до "classpath" com. android .tools.build: gradle: 3.6.1 '"
Очень признателен, если вы можете помочь мне решить проблему.
app / build.grale
apply plugin: 'com.android.application'
android {
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "xyz.sahildave.flavoredlibrary"
versionCode 1
versionName "1.0"
minSdkVersion 21
targetSdkVersion 28
compileSdkVersion 28
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
flavorDimensions("main")
productFlavors {
app1521 {
dimension "main"
applicationId "xyz.sahildave.flavoredlibrary.app1521"
}
app1524 {
dimension "main"
applicationId "xyz.sahildave.flavoredlibrary.app1524"
}
}
}
configurations {
app1521DebugImplementation
app1524DebugImplementation
}
dependencies {
app1521DebugImplementation project(path: ':mylibrary', configuration: 'sdk1521Debug')
app1524DebugImplementation project(path: ':mylibrary', configuration: 'sdk1524Debug')
app1521DebugImplementation 'com.android.support:appcompat-v7:21.0.3'
app1524DebugImplementation 'com.android.support:appcompat-v7:24.2.0'
}
mylibrary / build.gradle
apply plugin: 'com.android.library'
android {
buildToolsVersion "29.0.2"
publishNonDefault true
defaultConfig {
versionCode 1
versionName "1.0"
minSdkVersion 21
targetSdkVersion 28
compileSdkVersion 28
}
flavorDimensions("main")
productFlavors {
sdk1521 {
dimension "main"
}
sdk1524 {
dimension "main"
}
}
}
dependencies {
sdk1524Implementation 'com.android.support:appcompat-v7:24.2.1'
sdk1521Implementation 'com.android.support:appcompat-v7:21.0.3'
}
gradle / wrapper / gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip