문제

은 어떻게 추가하는 외부 라이브러리고 중첩된 외부 라이브러리는 안드로이드 프로젝트가 있습니까?


내 프로젝트 구조(를 변경할 수 없)

  • 앱/
    • A p p1/
      • 니다.gradle
      • 설정합니다.gradle
    • 라이브러리/
      • library1/
        • 니다.등급
        • 설정합니다.gradle
      • library2/
        • 니다.등급
        • 설정합니다.gradle
      • library3/
        • 니다.등급
        • 설정합니다.gradle
      • library4/
        • 니다.등급
        • 설정합니다.gradle

A p p1

A p p1/니다.gradle

buildscript {
    ...
}

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':..:libraries:library1')
    compile project(':..:libraries:library2')
    compile project(':..:libraries:library3')
    compile project(':..:libraries:library4')
}

android {
    ...
}

A p p1 하지 않는 직접에 따라 달라집 library3library4, 그러나,그것은 불평하지 않는 경우에 포함하의 종속성 build.gradle 파일 settings.gradle 파일입니다.그래서 나는 그들이 포함되어 있를 중지에서 불만을 제기하였습니다.

A p p1/설정합니다.gradle

include ':'
include '..:libraries:library1'
include '..:libraries:library2'
include '..:libraries:library3'
include '..:libraries:library4'

library1

library1/니다.gradle

buildscript {
    ...
}

apply plugin: 'android-library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':..:library3')
    compile project(':..:library4')
}

android {
    ...
}

library1/설정합니다.gradle

include ':'
include '..:library3'
include '..:library4'

library2..4

library2..4/니다.gradle

buildscript {
    ...
}

apply plugin: 'android-library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    ...
}

library2..4/설정합니다.gradle

include ':'

하려고 할 때 gradlew clean buildApp1 나는 다음과 같은 오류가:

FAILURE: Build failed with an exception.

* Where:
Build file '/home/user/projects/branches/branch1/Apps/libraries/library1/build.gradle' line: 15

* What went wrong:
A problem occurred evaluating project ':..:library:library1'.
> Project with path ':..:library3' could not be found in project ':..:library:library1'.

선 15 compile project(':..:library3')library1/build.gradle 파일입니다.

은 어떻게 추가하는 외부 라이브러리고 중첩된 외부 라이브러리는 안드로이드 프로젝트가 있습니까?

도움이 되었습니까?

해결책

에서 최고 수준의 설정입니다.gradle(a p p1/설정합니다.gradle)파일 뭔가 좋아하는 이에 대한 각각의 라이브러리

include ':library1'   
include ':library2'   
include ':library3'   
include ':library4'   

project(':library1').projectDir = new File(rootProject.projectDir, '../libraries/library1')
project(':library2').projectDir = new File(rootProject.projectDir, '../libraries/library2')
project(':library3').projectDir = new File(rootProject.projectDir, '../libraries/library3')
project(':library4').projectDir = new File(rootProject.projectDir, '../libraries/library4')

을 제거 기타 설정을 수정할 수 있습니다.gradle 파일,당신은 그들이 필요하지 않

그런 다음에 각 구축하는 스크립트 사용하기만 하면 됩니다

compile project (':library1')
compile project (':library2')
etc....

위에 설명된 대로 그냥 하나를 사용하여 설정합니다.gradle 파일에서 루트로젝트(a p p1).

에서 다음의 a p p1 폴더에 실행 gradlew clean :library1:build 는지 확인하려 library1 은 건물습니다.

로에 대한 문제에 대 a p p1 에 대해 불평하고 누락된 라이브러리 3&4,당신은 확신이 없 코드에 직접 응용 프로그램을 참조하는 이 라이브러리,또는 또는 라이브러리를 찾을 수 없을 때 컴파일 library1.건축 라이브러리를 개별적으로 검증은 그들 모두 구축 ok.

다른 팁

질문 하나입니다.당신은 당신이 의존성 트리?

--- App
   |--- Library 2
   |--- Library 1
       |--- Library 3
       |--- Library 4

그렇다면,당신의 응용 프로그램을 필요로하지 않을 가져올 라이브러리의 3 및 4.이 종속성을 사용할 수 있는 라이브러리 1.

에 대한 설정입니다.gradle 파일이 있습니다.왜 하나에서 각 모듈?이 파일은 사용되는 루트에서 프로젝트(같은 이 작업 영역)를 참조하 모듈(응용 프로그램,1 라이브러리,라이브러리 2,etc...)

당신이 필요하십니까?

내가 이것을 하기 위한 상대적인 경로:

include '..:ambilWarna'
include '..:excel'
include '..:pdfjet'
include '..:commons'
include '..:volley'


include  ':odb2'
include  ':azure'

include ':carBase'
include ':fuelTrackerLib'
include ':comsourcecastlelogbook'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top