Проект із шляхом ': 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.