Принудительная конфигурация в зависимости в приложении Gradle для Android

Мне нужно принудительно настроить конфигурацию в gradle в моем приложении для Android, а моя версия gradle — 3.0.1. ниже приведен старый способ сделать это, и мне нужен эквивалент Gradle 3.0.

releaseCompile project(path: ':androidLibrary', configuration: 'debug')

Моя версия ошибки:

releaseImplementation project(path: ':androidLibrary', configuration: 'debug')

выше дает мне сообщение об ошибке как

Ошибка: невозможно разрешить зависимость для ':main@release/compileClasspath': не удалось разрешить проект: androidLibrary".

Ошибка: невозможно разрешить зависимость для ':main@releaseUnitTest/compileClasspath': не удалось разрешить проект: androidLibrary.


person Prabhakaran    schedule 09.03.2018    source источник
comment
Проверьте мой ответ о matchingFallback здесь: stackoverflow.com/a/49288390/2949966.   -  person ahasbini    schedule 17.03.2018


Ответы (1)


Вы пробовали вместо этого следующее?

implementation project(':androidLibrary')

Согласно Google, перейдите на плагин Android для Gradle 3.0. .0, «нацеливание на конкретный вариант зависимости локального модуля (например, с использованием конфигурации: 'debug') вызывает следующую ошибку сборки:"

Error:Unable to resolve dependency for ':app@debug/compileClasspath':
  Could not resolve project :library.
Error:Unable to resolve dependency for ':app@release/compileClasspath':
  Could not resolve project :library.

Я думаю, вы ориентируетесь на конкретный вариант зависимости локального модуля, когда используете префикс release в releaseImplementation и когда вы включаете configuration: 'debug' в этот оператор:

releaseImplementation project(path: ':androidLibrary', configuration: 'debug')

Далее он рекомендует следующее решение:

«Вместо этого вы должны настроить свои зависимости следующим образом»:

dependencies {
    // This is the old method and no longer works for local
    // library modules:
    // debugImplementation project(path: ':library', configuration: 'debug')
    // releaseImplementation project(path: ':library', configuration: 'release')

    // Instead, simply use the following to take advantage of
    // variant-aware dependency resolution. You can learn more about
    // the 'implementation' configuration in the section about
    // new dependency configurations.
    implementation project(':library')

    // You can, however, keep using variant-specific configurations when
    // targeting external dependencies. The following line adds 'app-magic'
    // as a dependency to only the "debug" version of your module.

    debugImplementation 'com.example.android:app-magic:12.3'
}

источник: Перенос конфигураций зависимостей для локальных модулей

person Michael Osofsky    schedule 16.03.2018
comment
Это не решает вопрос. Он хочет заставить release зависеть от debug варианта library. На самом деле я столкнулся с той же проблемой, и функция автоматического разрешения вариантов разрешает release вместо debug. - person gmazzo; 17.03.2020