在根项目“ myproject”中找不到路径为“:mypath”的项目


78

我从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不,我没有它
Chulo

2
问题尚不清楚,请包括comple项目结构,此gradle文件在哪里以及项目目录结构的外观,因为您给出的内容甚至看起来都不像gradle项目。
pyus13

@ pyus13问题已编辑
-Chulo

除了build.gradle之外,没有什么比gradle项目更好的了。从AS中的botton面板打开“消息窗口”,并确保它没有显示警告消息,例如“ Not a Gradle Project”。
pyus13

Answers:


192

仅具有compile project("xy")依赖关系是不够的。您需要配置根项目以包括所有模块(或称它们为子项目,但这在这里可能不是正确的词)。

创建一个 在项目的根目录中settings.gradle文件,并添加以下内容:

include ':progressfragment'

到该文件。然后同步Gradle,它应该可以工作。

还有一个有趣的旁注:如果在settings.gradle中添加“:unexistingProject” (尚未创建的项目),则Gradle将在同步后为该项目创建文件夹(至少在Android Studio中,这是它的行为方式)。因此,为避免从现有文件创建项目时settings.gradle出现错误,请首先将该行添加到文件中,进行同步,然后将现有代码放入创建的文件夹中。由此产生的不良行为可能是,如果删除项目文件夹,然后同步文件夹将恢复为空,因为Gradle sync重新创建了它,因为它仍在settings.gradle中列出。


4
settings.gradle中没有模块。我检查并包括在内。它为我工作。
Harish Gyanani '16

1
为我工作!尽管我仍然觉得Gradle这样工作很奇怪。就像为什么我不想在构建文件中声明“ project(“项目名称”){// settings ...}“?为什么我必须有一个单独的文件,其中唯一包含的是我在实际构建文件中定义的所有项目的列表。我在构建文件中定义的所有那些项目?是的,我实际上要在我的建筑物中使用它们!我很好奇是否有人知道settings.gradle背后的设计原因?
史蒂文·比克斯

在某些情况下,您希望将模块包含在项目中,但不希望将其用作依赖项。例如,在我正在研究的项目上,我们有2个android应用程序,一个是UI部分,另一个是内容提供商应用程序。我们不想在构建期间依赖Content provider应用,但希望能够轻松更改并查看同一项目中的代码。
伊戈尔·科尔达斯(IgorČordaš),

不要为我的颤抖而烦恼。
Sabrina

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'

当您从react-native <0.60迁移到react-native> 0.60时,通常会发生此问题。如果您以React-native> 0.60创建一个新项目,您将看到与上述相同的设置


-4

删除子项目后,我得到了类似的错误,已删除

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

build.gradleGradle脚本中的 (依赖项)中

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.