2014-03-30 2 views
105

저는 발리 라이브러리를 사용하여 Android에서 네트워크 작동을 수행하고 있습니다. 그래서 안드로이드 스튜디오 및 gradle 시스템에서 만든 내 프로젝트 에이 라이브러리를 추가하려고합니다.오류 : Android Studio에서 이름이 'default'인 구성이 없습니다.

내 프로젝트에 발리 라이브러리를 추가했지만 gradle과 동기화 할 때 오류 메시지가 나타납니다. 나는 여기에서 보는 모든 답을 시도했지만 아무 것도 나를 위해 일하지 않았다.

오류 메시지 : 안드로이드 스튜디오

발리/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' 

     } 
    } 
} 

응용 프로그램/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') 
} 

루트에없는 이름을 '기본'으로 구성/빌드 .

// 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' 
+0

projectname/library 같은 올바른 위치에 라이브러리 폴더를 추가 했습니까? –

+0

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

+0

http://stackoverflow.com/questions/22547364/configuration-with-name-default-not-found-android-studio – k3b

답변

65

프로젝트의 루트 위치에 라이브러리 폴더를 추가하고 거기에 모든 라이브러리 파일을 복사합니다. 예전의 경우 YourProject/library에 대해 동기화하고 나머지 작업은 나에게 잘된 것처럼 보입니다.

+69

오류 메시지가 향상 될 수 있습니다./ – aleb

+5

이는 build.gradle 파일 또는.iml 파일이 라이브러리 디렉토리 내에 없다. –

+7

@aleb 터미널 명령을 실행하기 만하면되는 오류 메시지가 전체적으로 나옵니다 :'./gradlew assembleDebug'. 당신은'안드로이드 스튜디오'또는 외부 터미널 애플 리케이션에서 할 수 있습니다. – eleven

90

시도 :

git submodule init 
git submodule update 
+1

이것은 하위 모듈로 추가 된 라이브러리에서 유용합니다! – Arne

+0

@Vilius, 터미널에서이 디렉토리를 실행합니까? 내 프로젝트 디렉토리에서 실행하려했지만'Not git repository (또는 부모 디렉토리)'라고 말합니다. 가져 오기를 시도한 샘플 앱이 있는데,이 앱은 gradle 용으로 설정되지 않았기 때문에 래핑했습니다. 그게 문제의 일부인지 궁금하네요. 사실, 나는'settings.gradle' 파일조차 가지고 있지 않습니다. 'build.gradle'과 다른 것들만. – Azurespot

+2

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

21

이 아마 드문 경우이지만, settings.gradle에 포함 된 라이브러리가 없었다 나를 위해.

예. 내가 가지고있는 것 :내 설정 .gradle

하지만 Android-RateThisApp 폴더가 비어 있습니다. 이 서브 모듈을 확인하자마자 gradle sync가 성공합니다.

+0

예, 아마도'git submodule init'과'git submodule update'를해야만했을 것입니다. 서브 모듈로 프로젝트를 체크 아웃하는 것은 일반적인 경우입니다. – ViliusK

+0

전혀 드문 일은 아니지만 .... 이것은이 오류가있는 나를위한 경우입니다 ... 많은 시간들. – sirvon

+0

나에게도 마찬가지였다. 업데이트 된 반응 - 네이티브 -지도 및 안드로이드 디렉토리에 경로를 변경 – cbartondock

6

나는이 문제에 직면하지만 난 다음 단계를 따르십시오 : - 1) I 모듈 (라이브러리 추가) 특정 폴더의 이름을 ThirdPartyLib

난 단지보다 settings.gradle 가서이 문제를 해결하려면 follwing을 추가 : -.

프로젝트 (':') PROJECTDIR = 새로운 파일 ('ThirdPartyLib /')

: - 인 모듈 이름 ...

+0

고마워,이 나를 위해 작동합니다. – AndroidHacker

2

이 오류를 신속하게 진단하려면 터미널에 내려 놓거나 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' 

나는 원래 포스터의 질문에 대답했다 알고 있지만 나는 대답은 지난 한 해 동안 진화했다고 생각 나는 오류에 대한 여러 가지 이유가 있다고 생각합니다. 나는이 결의안이 다양한 문제를 겪는 사람들을 도울 것이라고 생각한다. 여러 프로젝트에 동일한 라이브러리 폴더를 사용하려면

14

,이 같은 외부 위치에 Gradle을에서 참조 할 수 있습니다 :

settings.gradle :

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

앱이 빌드 .gradle

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

전체 프로젝트를 하위 모듈로 사용했을 때이 기능은 저에게 효과적 이었지만 프로젝트의 라이브러리 모듈 (예제 패키지는 제외) 만 사용하려고했습니다. – phreakhead

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 프로젝트를 사용하고 있는데이 두 줄을 추가하여 내 설정 .gradle에 포함시켜야했습니다.

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

경로는 내 프로젝트의 settings.gradle 파일과 관련이 있습니다. 그럼, 간단하게 컴파일하고 확인, 내가 한 번에 하나 개의 모듈을 가져 추천이

... 

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

    } 

처럼 내 응용 프로그램의 build.gradle 파일의 내 의존성을 참조.

0

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

관련 문제