Gradle ошибка: конфигурация объявляет зависимость, которая не объявлена
Я делаю свое первое приложение для Android, но я не могу заставить Android Studio работать.
Сначала я получил ошибку
"Project with path ':wear' could not be found in project ':mobile'.
Это было разрешено добавлением "include ':wear"
в settings.gradle
.
Но затем возникает новая ошибка:
"Error:Module version Test2:mobile:unspecified, configuration 'wearApp' declares a dependency on configuration 'default' which is not declared in the module descriptor for Test2:wear:unspecified" .
Что мне нужно сделать, чтобы разрешить эту ошибку?
На всякий случай это необходимо: здесь build.gradle
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.verbraeken.joost.test2"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
wearApp project(':wear')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.android.support:design:23.1.1'
}
settings.gradle:
include ':mobile'
include ':wear'
Ответы
Ответ 1
В Android Studio 3.0 документация для Миграция в новый плагин говорит:
dependencies {
// This is the old method and no longer works for local
// library modules:
// debugCompile project(path: ':foo', configuration: 'debug')
// releaseCompile project(path: ':foo', 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(':foo')
// 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'
}
Итак, измените этот
debugCompile project(path: ':foo', configuration: 'debug')
releaseCompile project(path: ':foo', configuration: 'release')
к этому
implementation project(':foo')
Ответ 2
Ошибка: версия модуля Test2: mobile: не указано, конфигурация 'wearApp' объявляет зависимость от конфигурации 'default'
Это означает, что модуль (wearApp в вашем случае) не имеет файла build.gradle
или правильной конфигурации внутри файла build.gradle
.
Поскольку вы определяете модуль в settings.gradle
, вам необходимо предоставить build.gradle
для каждого модуля.
В вашем случае:
root
|-- mobile
|----build.gradle
|-- wear
|----build.gradle
|--build.gradle
|--settings.gradle
Ответ 3
Если вы не используете Android Studio 3.0, это сработало для меня, в вашем build.gradle lib:
publishNonDefault true
как это
android {
compileSdkVersion maxApiLevel.toInteger()
buildToolsVersion androidBuildToolsVersion
publishNonDefault true
[...]
}
И в вашем include build.gradle:
dependencies {
debugCompile project(path: ':foo', configuration: 'debug')
releaseCompile project(path: ':foo', configuration: 'release')
}