Подтвердить что ты не робот

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'
4b9b3361

Ответ 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')
}