오류 : Android 스튜디오에서 이름이 'default'인 구성을 찾을 수 없습니다.


117

나는 발리 라이브러리를 사용하여 안드로이드에서 네트워크 작업을 수행하고 있습니다. 그래서 Android Studio 및 gradle 시스템에서 만든 프로젝트 에이 라이브러리를 추가하려고합니다.

내 프로젝트에 발리 라이브러리를 추가했지만 gradle과 동기화하면 오류 메시지가 나타납니다. 나는 여기에서 보는 모든 답변을 시도했지만 아무것도 효과가 없었습니다.

오류 메시지 : Android Studio에서 이름이 'default'인 구성을 찾을 수 없습니다.

Volley / build.gradle

apply plugin: 'android-library'

android {

    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    sourceSets {
        defaultConfig {
            minSdkVersion 8
            targetSdkVersion 19
        }

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

        }
    }
}

app / build.gradle

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile project(':library:volley')
}

root / build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.1'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

settings.gradle

include ':app'
include ':library:volley'

프로젝트 이름 / 라이브러리와 같은 올바른 위치에 라이브러리 폴더를 추가 했습니까 ??
Ajay S

앱 디렉터리에 라이브러리 디렉터리를 추가했습니다.
Bot



1
제 경우에는 gradle 구성 파일 중 하나가 누락되어 제대로 푸시되지 않습니다.
Zar E Ahmer

답변:


68

프로젝트의 루트 위치에 라이브러리 폴더를 추가하고 여기에 모든 라이브러리 파일을 복사하십시오. 예를 들어 YourProject / 라이브러리의 경우 동기화하고 나머지는 나에게 괜찮은 것 같습니다.


5
또한 build.gradle 파일 또는 .iml 파일이 라이브러리 디렉토리 내에 누락되었음을 의미 할 수도 있습니다.
WKS

7
@aleb 전체 오류 메시지를 받으려면 터미널 명령을 실행해야합니다 : ./gradlew assembleDebug. Android Studio또는 외부 터미널 앱 에서 할 수 있습니다 .
11

예제와 사진을 게시 할 수 있습니까? 감사합니다.이 방법이 작동하지 않기 때문에
Delive the

내 하루를 구해준 고마워 친구. 당신이 <3 감사
Gufran 쿠르

1
이로 인해 @ViliusK의 답변에 의해 더 명시 적으로 확장 된 내 하위 모듈이 누락되었음을 깨달았습니다.
Ionoclast Brigham

96

시험:

git submodule init
git submodule update

1
이것은 서브 모듈로 추가 된 라이브러리에서 확실히 작동합니다. 감사합니다!
Arne

@Vilius, 어떤 디렉토리에서 터미널에서 실행합니까? 내 프로젝트 디렉토리에서 실행하려고했지만 Not a git repository (or any of the parent directories). 가져 오려고 한 샘플 앱이 있는데 gradle 용으로 설정되지 않았기 때문에 래핑했습니다. 그게 문제의 일부인지 궁금합니다. 사실 저는 settings.gradle파일 도 없습니다 . Only build.gradleand some other.
Azurespot

2
프로젝트의 루트 디렉토리에서 실행해야합니다. git repo의 프로젝트 여야합니다. 그리고 그것은 하위 프로젝트가있는 프로젝트 여야합니다. 에서 봐 build.gradle같은 뭔가 파일compile project(':libs:my-custom:library')
ViliusK

1
> 하위 모듈을 사용하면 저장소의 하위 디렉토리에 다른 Git 저장소를 유지할 수 있습니다. 다른 저장소에는 현재 저장소의 기록을 방해하지 않는 자체 기록이 있습니다. 예를 들어 타사 라이브러리와 같은 외부 종속성을 갖는 데 사용할 수 있습니다. 출처
ViliusK 2015 년

3
git submodule은 gradle 빌드 오류와 어떤 관련이 있습니까?
테디

22

이것은 드문 경우 일 수 있지만 저에게는 settings.gradle에 포함 된 라이브러리가 없었습니다.

예 : include ':libraries:Android-RateThisApp:library'내 settings.gradle에서

그러나 Android-RateThisApp 폴더는 비어 있습니다. 이 하위 모듈을 확인하자마자 gradle 동기화가 성공합니다.


예, 아마도 git submodule initgit submodule update. 서브 모듈이있는 프로젝트를 체크 아웃 할 때 흔히 발생합니다.
ViliusK

전혀 드물지 않습니다 .... 이것은 일종의 오류가있는 저에게 있습니다 .. 많은 시간.
sirvon

이것이 저의 경우였습니다! 업데이트 - 네이티브지도를 반응은 안드로이드 디렉토리의 경로를 변경
cbartondock

14

여러 프로젝트에 동일한 라이브러리 폴더를 사용하려면 gradle에서 다음과 같이 외부 위치를 참조 할 수 있습니다.

settings.gradle :

include 'app', ':volley'
project(':volley').projectDir = new File('../libraries/volley')

앱 build.gradle에서

dependencies {
    ...
    compile project(':volley')
...}

이것은 전체 프로젝트를 하위 모듈로 사용했지만 해당 프로젝트의 라이브러리 모듈 만 사용하고 싶을 때 효과적이었습니다 (샘플 앱 제외).
phreakhead

6

나는 또한이 문제에 직면하지만 다음 단계를 따릅니다 .-- 1) 특정 폴더 이름 ThirdPartyLib에 모듈 (Library)을 추가합니다.

이 문제를 해결하려면 다음을 추가하는 것보다 settings.gradle 로 이동합니다 .

project ( ':'). projectDir = new File ( 'ThirdPartyLib /')

:-는 모듈 이름입니다 ...


3

이 오류를 진단하려면 빠르게 터미널로 이동하거나 Android Studio에 내장 된 터미널 (하단 상태 표시 줄에서 액세스 가능)을 사용하십시오. PROJECT의 기본 디렉토리 ( settings.gradle위치)로 변경하십시오.

1.) settings.gradle하위 프로젝트가 포함되어 있는지 확인하십시오 . 이 같은. 이렇게하면 다중 프로젝트 빌드가 라이브러리 하위 프로젝트에 대해 알 수 있습니다.

include ':apps:App1', ':apps:App2', ':library:Lib1'

콜론 사이의 텍스트는 하위 디렉터리입니다.

2.) 다음 gradle 명령을 실행하여 Gradle이 라이브러리 작업 목록을 제공 할 수 있는지 확인하십시오. settings.gradle정의 에서 동일한 규정자를 사용하십시오 . 이렇게하면 라이브러리 빌드 스크립트의 문제가 격리되어 발견됩니다.

./gradlew :library:Lib1:tasks --info

3.) 마지막 단계의 출력에 "assembleDefault"태스크가 나열되어 있는지 확인하십시오. 라이브러리에 Android 라이브러리 플러그인이 포함되어 있는지 확인하지 않은 경우 build.gradle. 맨 위에 이렇게.

apply plugin: 'com.android.library'

원래 포스터의 질문에 대한 답변은 알고 있지만 답변은 작년에 걸쳐 진화했다고 생각하며 오류에 대한 여러 가지 이유가 있다고 생각합니다. 이 해결 흐름은 다양한 문제에 직면 한 사람들에게 도움이 될 것이라고 생각합니다.


3

settings.gradle파일을 확인 하십시오. 포함 된 모듈이 누락되었거나 다른 디렉토리에있을 수 있습니다. 예를 들어에서 아래 줄을 사용 settings.gradle하면 gradle common-lib은 프로젝트 디렉토리 내에서 모듈을 검색 합니다.

include ':common-lib'

누락 된 경우이 모듈을 찾아 프로젝트에 복사하거나 settings.gradle파일 에서 해당 경로를 참조 할 수 있습니다.

include ':common-lib'
project(':common-lib').projectDir = new File('<path to your module i.e. C://Libraries/common-lib>') // 

0

나에게 (내가 본 몇 가지 의견에 따라) 문제는 gradle이 가져온 라이브러리의 build.gradle을 찾을 수 없다는 것입니다. 이 구성은 간단하지만 오류 메시지는 약간 알 수 없습니다. 예를 들어 나는 android-map-utils 프로젝트를 사용하고 있었고 이와 같이이 두 줄을 추가하여 settings.gradle에 포함해야했습니다.

include ':android-map-utils'
project(':android-map-utils').projectDir = new File(settingsDir, '..\\..\\modules\\android-maps-utils-master\\library')

라이브러리의 경로는 내 프로젝트의 settings.gradle 파일에 상대적입니다. 그런 다음 내 앱의 build.gradle 파일에 대한 종속성에서 다음과 같이 간단히 참조했습니다.

...

    dependencies {
    ....
        compile project(':android-map-utils')
    ....

    }

한 번에 하나의 모듈을 가져 와서 컴파일하고 확인하는 것이 좋습니다.


0

특정 노드 모듈을 제거한 후이 오류를 발견했다고 가정하면 이상적으로는 build.gradle (Module : app) 아래에 라이브러리가 없어야합니다. 수동으로 제거하고 프로젝트를 다시 동기화 할 수 있습니다.


0

나는 또한 같은 문제에 직면했고 문제는 다음 파일 중 일부에서 라이브러리가 누락되었다는 것입니다.

settings.gradle, app / build.gradle, package.json, MainApplication.java

라이브러리가 react-native-vector-icons라고 가정하면 다음 파일에서 언급해야합니다.

종속성 섹션 아래의 app / build.gradle 파일에서 다음을 추가하십시오.

프로젝트 컴파일 ( ': react-native-vector-icons')

android 폴더의 settings.gradle 파일에 다음을 추가하십시오.

include ': react-native-vector-icons'project ( ': react-native-vector-icons'). projectDir = new File (rootProject.projectDir, '../node_modules/react-native-vector-icons/android' )

MainApplication.java에서 다음을 추가하십시오.

종속성 가져 오기 : import com.oblador.vectoricons.VectorIconsPackage;

그런 다음 getPackages () 메서드에 new VectorIconsPackage ()를 추가합니다.


0

반응 네이티브 종속성을 거의 제거하면 문제가 해결되었습니다.

이 줄을 삭제하면 문제가 해결됩니다. 이 줄은 rnpm 링크에 의해 생성되었지만 버그입니다.

compile project(':react-native-gps')
compile project(':react-native-maps')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.