web-dev-qa-db-fra.com

Projet avec chemin ': mypath' introuvable dans le projet racine 'myproject'

Je suis passé d'Eclipse vers Android studio .5.8, après avoir importé mon projet dans Android studio, je rencontrais l'erreur Project with path ':progressfragment' could not be found in root project 'project_name'.

Projet Struture:

Libs

enter image description here

Structure complète (deuxième édition):

enter image description here

Gradle.build:

apply plugin: 'Android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':progressfragment')
    compile project(':viewpagerindicatorlibrary')
    compile project(':ZBarScannerActivity')
    compile project(':google-play-services_lib')
    compile project(':SwitchCompatLibrary')
    compile project(':actionbarsherlock')
    compile project(':librarymultichoice')
}



buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.9.+'
    }
}

Android {
    compileSdkVersion 14
    buildToolsVersion "19.0.1"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/Java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/Java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}
53
Chulo

Il ne suffit pas d'avoir juste la dépendance compile project("xy"). Vous devez configurer le projet racine pour inclure tous les modules (ou pour les appeler des sous-projets, mais Word pourrait ne pas être correct ici).

Créez un fichier settings.gradle à la racine de votre projet et ajoutez ceci:

include ':progressfragment'

à ce fichier. Puis synchronisez Gradle et cela devrait fonctionner.

Autre note intéressante: si vous ajoutez ': unxistingProject' dans settings.gradle (projet que vous n'avez pas encore créé), Gradle créera un dossier pour ce projet après la synchronisation (au moins dans Android studio, voici comment il se comporte). Donc, pour éviter les erreurs avec settings.gradle lorsque vous créez un projet à partir de fichiers existants, ajoutez d'abord cette ligne à fichier, synchronisez puis placez le code existant dans le dossier créé. Il peut en résulter un comportement indésirable: si vous supprimez le dossier de projet, puis le dossier de synchronisation redevient vide, car Gradle sync l'a recréé car il est toujours répertorié dans settings.gradle.

154
PSIXO