it-swarm.com.de

Gradle Fehler: Konfiguration deklariert Abhängigkeit, die nicht deklariert ist

Ich mache meine erste Android-Verschleiß-App, aber ich kann Android Studio nicht zum Laufen bringen ... __ Zuerst bekam ich den Fehler

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

Dies wurde durch Hinzufügen von "include ':wear" in settings.gradle behoben.
Dann tritt ein neuer Fehler auf: 

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

Was muss ich tun, um diesen Fehler zu beheben?

Für den Fall, dass es benötigt wird: hier ist 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'
}

einstellungen.gradle:

include ':mobile'
include ':wear'
21

In Android Studio 3.0 heißt es in der Dokumentation für Zum neuen Plugin migrieren sagt:

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

Also das ändern

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

zu diesem

    implementation project(':foo')
47
Jonas Borggren

Fehler: Modulversion Test2: mobil: nicht angegeben, Konfiguration 'wearApp' erklärt Abhängigkeit von der Konfiguration 'default' 

Dies bedeutet, dass ein Modul (in Ihrem Fall wearApp) keine build.gradle-Datei oder eine richtige Konfiguration in der build.gradle-Datei hat.

Da Sie in settings.gradle ein Modul definieren, müssen Sie einen build.gradlefür jedes Modul angeben.

In Ihrem Fall:

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

Wenn Sie nicht mit Android Studio 3.0 arbeiten, hat dies in Ihrer build.gradle -Lib für mich funktioniert

publishNonDefault true

so was

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

    [...]
}

Und in Ihrem Include build.gradle:

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

Ich verwende ionisches Cordova zum Erstellen meiner App. In meinem Fall wurde die Datei build.grade jedes Mal aktualisiert. Ich muss die Datei "app_path> node_modules\cordova-Android\bin\templates\cordova\lib\builders\GradleBuilder ändern. js "von:

    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);

zu:

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

Funktioniert bei mir

0
jacruz

Der Trick ist:

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

Sie haben jetzt noch keinen Geschmack oder Typ für build gesetzt, Gradle 3.0 und höher suchen nach jedem Geschmack und buildType ..__ Weitere Informationen: https://developer.Android.com/studio/build/gradle-plugin- 3-0-0-Migration # variant_dependencies

0
Leonardo Sapuy