web-dev-qa-db-fra.com

Erreur Gradle: la configuration déclare une dépendance qui n'est pas déclarée

Je suis en train de créer ma première application Android, mais je ne parviens pas à faire fonctionner Android Studio.

 "Project with path ':wear' could not be found in project ':mobile'. 

Ce problème a été résolu en ajoutant "include ':wear" dans settings.gradle.
Mais alors une nouvelle erreur se produit: 

"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" .

Que dois-je faire pour résoudre cette erreur?

Juste au cas où cela serait nécessaire: voici 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'
21
Joost Verbraeken

Dans Android Studio 3.0, la documentation de Migrer vers le nouveau plugin dit:

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'
}

Alors changez cela

    debugCompile project(path: ':foo', configuration: 'debug')
    releaseCompile project(path: ':foo', configuration: 'release')

pour ça

    implementation project(':foo')
47
Jonas Borggren

Erreur: Version du module Test2: mobile: non spécifié, la configuration 'wearApp' déclare une dépendance à la configuration 'par défaut' 

Cela signifie qu'un module (wearApp dans votre cas) n'a pas de fichier build.gradle ni de configuration correcte dans le fichier build.gradle.

Puisque vous définissez un module dans settings.gradle, vous devez fournir un build.gradle pour chaque module .

Dans ton cas:

root
|-- mobile
|----build.gradle
|-- wear
|----build.gradle
|--build.gradle
|--settings.gradle
6
Gabriele Mariotti

Si vous n'utilisez pas Android Studio 3.0, cela a fonctionné pour moi, dans votre bibliothèque build.gradle:

publishNonDefault true

comme ça

Android {
    compileSdkVersion maxApiLevel.toInteger()
    buildToolsVersion androidBuildToolsVersion
    publishNonDefault true

    [...]
}

Et dans votre include build.gradle:

dependencies {
    debugCompile project(path: ':foo', configuration: 'debug')
    releaseCompile project(path: ':foo', configuration: 'release')
}
3
Blaaz

J'utilise cordic ionic pour construire mon application. Dans mon cas, le fichier build.grade a été mis à jour à chaque fois, je dois modifier le fichier "chemin_application> modules_noeud\cordova-Android\bin\modèles\cordova\lib\builders\GradleBuilder. js "de:

    console.log('Subproject Path: ' + p);
    var libName=p.replace(/[/\\]/g, ':').replace(name+'-','');
    depsList += '    debugCompile(project(path: "' + libName + '", configuration: "debug"))';
    insertExclude(p);
    depsList += '    releaseCompile(project(path: "' + libName + '", configuration: "release"))';
    insertExclude(p);

à:

    console.log('Subproject Path: ' + p);
    var libName=p.replace(/[/\\]/g, ':').replace(name+'-','');
    depsList += '    compile project(\'' + libName + '\')';
    insertExclude(p);

Travaille pour moi

0
jacruz

Le truc c'est:

dependencies {
    // If the main app and wearable modules have the same flavors,
    // the following configuration uses automatic dependency matching.
    wearApp  project(':wearable')
}

Vous n'avez pas encore défini de type ou de version de construction, mais tous les versions 3.0 et supérieures recherchent chaque variante et type de construction . Plus d'infos: https://developer.Android.com/studio/build/gradle-plugin -3-0-0-migration # variant_dependencies

0
Leonardo Sapuy