web-dev-qa-db-ja.com

パス ':mypath'のプロジェクトはルートプロジェクト 'myproject'で見つかりませんでした

EclipseからAndroid studioに移行しました.5.8、プロジェクトをAndroid studioにインポートした後、エラーが発生しましたProject with path ':progressfragment' could not be found in root project 'project_name'.

プロジェクト構造:

Libs

enter image description here

完全な構造(編集2):

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

compile project("xy")依存関係だけでは不十分です。すべてのモジュールを含めるようにルートプロジェクトを構成する必要があります(またはサブプロジェクトと呼びますが、ここでは正しいWordではない可能性があります)。

プロジェクトのルートにsettings.gradleファイルを作成し、これを追加します。

include ':progressfragment'

そのファイルに。その後、Gradleを同期すると動作します。

また、1つの興味深いサイドノート:settings.gradle(まだ作成していないプロジェクト)に ':unexistingProject'を追加すると、Gradleは同期後にこのプロジェクトのフォルダーを作成します(少なくともAndroidスタジオでは、これが動作します)。したがって、既存のファイルからプロジェクトを作成するときにsettings.gradleのエラーを回避するには、まずその行をファイルに追加し、同期してから作成したフォルダーに既存のコードを配置します。これに起因する望ましくない動作は、プロジェクトフォルダーを削除した後、settings.gradleにリストされているため、Gradle同期が再作成したため、同期フォルダーが空に戻ることです。

154
PSIXO