Проект із шляхом ': mypath' не вдалося знайти в кореневому проекті 'myproject'


79

Я перейшов з Eclipse в android studio 0.5.8 , після імпорту мого проекту в android studio я отримав помилкуProject with path ':progressfragment' could not be found in root project 'project_name'.

Структура проекту:

Ліби

введіть тут опис зображення

Повна структура (редагування 2):

введіть тут опис зображення

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

10
У вас немає settings.gradleфайлу?
Салем

@Salem ні, у мене його немає
Чуло

2
Питання незрозуміле, будь ласка, включіть структуру проекту comple, де знаходиться цей файл gradle та як виглядає структура каталогу проектів, оскільки те, що ви надали, навіть не схоже на проект gradle.
pyus13

Питання @ pyus13 відредаговано
Chulo

крім build.gradle, ніщо не здається проектом gradle. Відкрийте вікно повідомлень на панелі боттона в AS і переконайтеся, що на ньому не відображається попереджувальне повідомлення типу "Не проект Gradle".
pyus13

Відповіді:


193

Недостатньо мати лише compile project("xy")залежність. Вам потрібно налаштувати root-проект для включення всіх модулів (або називати їх підпроектами, але це може бути неправильним словом тут).

Створіть файл settings.gradle у кореневій частині проекту та додайте наступне:

include ':progressfragment'

до цього файлу. Потім синхронізуйте Gradle, і він повинен працювати.

Також одна цікава побічна примітка: Якщо ви додасте ': unreistingProject' у settings.gradle (проект, який ви ще не створили), Gradle створить папку для цього проекту після синхронізації (принаймні в Android-студії це так поводиться). Отже, щоб уникнути помилок із settings.gradle при створенні проекту з існуючих файлів, спочатку додайте цей рядок до файлу, синхронізуйте, а потім помістіть існуючий код у створену папку. Небажана поведінка, що випливає з цього, може полягати в тому, що якщо ви видалите папку проекту, а потім папка синхронізації повернеться порожньою, оскільки Gradle sync створив її, оскільки вона все ще перелічена в settings.gradle .


4
модуля не було в settings.gradle . Я перевірив і включив. У мене це спрацювало.
Harish Gyanani

1
Працював у мене! Хоча мені все ще дуже дивно, що Gradle працює таким чином. Наприклад, чому б я оголосив "проект (" ім'я проекту ") {// налаштування ...}" у своєму файлі збірки, якщо я не хотів його включати? Чому я повинен мати окремий файл, де єдине, що він містить, це перелік усіх проектів, які я визначив у своєму фактичному файлі збірки. Усі ті проекти, які я визначив у своєму файлі збірки? Так, я насправді хочу їх у своїй збірці! Мені цікаво, якщо хтось знає причину дизайну, що стоїть за параметром settings.gradle?
Steven Byks

Є певні випадки, коли ви хотіли б включити модуль як частину свого проекту, але не використовувати його як залежність. Наприклад, у проекті, над яким я працюю, у нас є 2 програми для Android, одна - частина інтерфейсу, а інша - програма для постачальника вмісту. Ми не хочемо бути залежними від програми постачальника вмісту під час збирання, але хотіли б мати можливість легко змінювати та переглядати його код у тому самому проекті.
Ігор Чордаш

Не знущався за мене за трепет.
Сабріна

4

Видаліть усі тексти в android / settings.gradle та вставте наведений нижче код

rootProject.name = '****Your Project Name****'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'

Ця проблема зазвичай трапляється, коли ви переходите з рідної реакції <0,60 на рідну реакцію> 0,60. Якщо ви створюєте новий проект у реактивному режимі> 0,60, ви побачите ті самі налаштування, що і вище


-4

Я отримав подібну помилку після видалення підпроекту, видаленого

"*compile project(path: ':MySubProject', configuration: 'android-endpoints')*"

в build.gradle(залежності) під сценаріями Gradle

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.