gradle 3.1.2 зависимость от вида продукта библиотеки - PullRequest
0 голосов
/ 02 мая 2018

версия Gradle 3.1.2

У меня есть приложение и модуль. Модуль имеет продуктовые ароматы. Когда я заставляю приложение зависеть от модуля, gradle не работает. Вот файлы gradle,

Приложение Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.myapplication"
        ...
    }
    buildTypes {
         release {
             ...
         }
    }
}

dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
     ...
     implementation project(':mylibrary') <- this is the dependency added
}

Модуль Gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 19
        ...
    }

    buildTypes {
        release {
            ...
        }
    }

    flavorDimensions 'api'
    productFlavors {
        v1_0 {
            dimension 'api'
        }

        v2_0 {
            dimension 'api'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ...
}

Ниже приведены ошибки, сгенерированные gradle,

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :mylibrary.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :mylibrary.
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :mylibrary.
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :mylibrary.
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve project :mylibrary.

Как сделать приложение зависимым от модуля, использующего вкус продукта?

проект реализации (путь: ': mylibrary', конфигурация: 'v1_0') больше не работает после gradle 3 +

1 Ответ

0 голосов
/ 08 августа 2019

Начиная с Gradle 3.0, вы должны использовать missingDimensionStrategy

Это означает, что вам нужно сообщить вашему app модулю, какие варианты использовать для измерений, которые есть в вашей библиотеке, но у вашего app модуля нет.

defaultConfig {
    applicationId "com.example.myapplication"
    missingDimensionStrategy 'api', 'v1_0'
    ...
}

Вы, конечно, можете использовать missingDimensionStrategy не только в своих defaultConfig, но также для debug{} и release{} buildTypes или для productFlavors, если добавите их позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...