Android 프로젝트에 라이브러리 프로젝트 (예 : Sherlock ABS)를 추가하려면 어떻게합니까 ?
(이전 ADT Eclipse 기반 번들이 아니라 새로운 Android Studio에 적용 됩니다.)
Gradle
경우이 StackOverflow 답변을 참조하십시오 .
Android 프로젝트에 라이브러리 프로젝트 (예 : Sherlock ABS)를 추가하려면 어떻게합니까 ?
(이전 ADT Eclipse 기반 번들이 아니라 새로운 Android Studio에 적용 됩니다.)
Gradle
경우이 StackOverflow 답변을 참조하십시오 .
답변:
Android Studio 1.0 업데이트
Android Studio 1.0 (및 v1.0과 이전 답변 당시의 첫 번째 버전 중 많은 버전)이 출시 된 이후 몇 가지 사항이 변경되었습니다.
내 설명은 Gradle 파일을 통해 수동으로 외부 라이브러리 프로젝트를 추가하는 데 중점을 둡니다 (프로세스를 더 잘 이해하기 위해). Android Studio 제작자를 통해 라이브러리를 추가하려면 시각적 가이드를 사용하여 아래 답변을 확인 하십시오 (Android Studio 1.0과 스크린 샷의 차이점은 있지만 프로세스는 매우 유사합니다).
라이브러리를 직접 프로젝트에 추가하기 전에 외부 종속성을 추가하십시오. 프로젝트 구조가 엉망이되지 않습니다. 거의 모든 잘 알려진 Android 라이브러리는 Maven 저장소 에서 사용할 수 있으며 설치시 app/build.gradle
파일 에서 한 줄의 코드 만 사용 합니다.
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
라이브러리 추가
프로젝트에 외부 Android 라이브러리를 추가하는 전체 프로세스는 다음과 같습니다.
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
)에서 새 폴더를 만듭니다. 여기 /libs
에 외부 라이브러리를 배치합니다 (이 단계는 필요하지 않습니다. 더 깔끔한 프로젝트 구조를 유지하기 위해)./libs
폴더 에 붙여 넣습니다 . 이 예제에서는 PagerSlidingTabStrip 라이브러리를 사용 했습니다 (GitHub에서 ZIP을 다운로드하고 라이브러리 디렉토리의 이름을 "PagerSlidingTabStrip"으로 바꾸고 복사하십시오). 프로젝트의 새로운 구조는 다음과 같습니다.HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
에 라이브러리를 추가하여 settings.gradle을 편집하십시오 include
. 내가했던 것처럼 사용자 정의 경로를 사용하는 경우 라이브러리의 프로젝트 디렉토리도 정의해야합니다. 전체 settings.gradle은 다음과 같습니다.
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1 "기본 구성"오류가 발생하면 5 단계 대신이를 시도하십시오.
include ':app'
include ':libs:PagerSlidingTabStrip'
에서 것은 app/build.gradle
종속성으로 도서관 프로젝트를 추가 :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":PagerSlidingTabStrip")
}
6.1. 5.1 단계를 따른 경우 6 대신이 단계를 따르십시오.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":libs:PagerSlidingTabStrip")
}
라이브러리 프로젝트에 build.gradle
파일 이 없으면 수동으로 작성해야합니다. 해당 파일의 예는 다음과 같습니다.
apply plugin: 'com.android.library'
dependencies {
compile 'com.android.support:support-v4:21.0.3'
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
또한 프로젝트의 전역 구성을 만들어 SDK 버전을 포함하고 일관성을 유지하기 위해 모든 모듈에 대한 도구 버전을 빌드 할 수 있습니다. gradle.properties
파일을 편집 하고 행을 추가하십시오.
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.3
ANDROID_BUILD_SDK_VERSION=21
이제 build.gradle
아래와 같이 파일 (앱 및 라이브러리 모듈)에서 사용할 수 있습니다.
//...
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
}
}
//...
그게 다야. 클릭하면 프로젝트가 Gradle 아이콘과 동기화됩니다 . 프로젝트에서 라이브러리를 사용할 수 있어야합니다.
Google I / O 2013-새로운 Android SDK 빌드 시스템 은 Gradle Build System을 사용하여 Android 앱을 빌드하는 방법에 대한 훌륭한 프레젠테이션입니다.
Android Studio는 편집, 디버깅 및 프로파일 링에 관한 것입니다. 더 이상 건축하는 것이 아닙니다.
처음에는 약간 혼란 스러울 수 있습니다 (특히 Eclipse 와 함께 일하고 개미를 본 적이없는 사람들에게는 ).하지만 결국 Gradle은 우리에게 훌륭한 기회를 제공 하며이 빌드 시스템을 배울 가치가 있습니다.
Global libraries
(# 10 : "현재 글로벌 라이브러리로 이동")? 그 외에는 설명대로 작동합니다 :) 정말 감사합니다. (Google이이를 이해하기를 바랍니다. 이러한 간단한 작업은 현재 매우 복잡합니다.)
비주얼 가이드는 다음과 같습니다.
Android Studio 0.8.2 업데이트 :
Android Studio 0.8.2 에서 모듈 아래의 프로젝트 구조 -> 로 이동 하면 더하기 버튼을 누르고 기존 프로젝트 가져 오기 및 가져 오기를 선택하십시오 . 그런 다음 Gradle 파일을 동기화하십시오.actionbarsherlock
오류가 발생하면
오류 : SDK 빌드 도구 개정판 (xx.xx)이 너무 낮습니다. 필요한 최소값은 yy.yy입니다.
디렉토리 에서 build.gradle
파일을 열고 제안 된 파일로 actionbarsherlock
업데이트하십시오 buildToolsVersion
.
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
메뉴 파일 -> 프로젝트 구조 ... :
모듈 -> 가져 오기 모듈
라이브러리 모듈을 가져온 후, 선택 하여 프로젝트 모듈과 종속성을 추가 :
그런 다음 가져온 모듈 을 선택하십시오 .
Select your project module and add dependency
dependencies { // ... compile project(':library') }
메뉴 파일 -> 프로젝트 구조 -> 모듈을 사용하십시오 .
나는 오늘 그것을 사용하기 시작했다. 조금 다릅니다.
Sherlock의 경우 테스트 디렉토리를 삭제하거나 junit.jar
파일을 클래스 경로에 추가 할 수 있습니다.
gradle을 사용하여 라이브러리를 가져 오려면 (모듈의) dependencies
섹션에 라이브러리를 추가해야합니다 build.gradle
.
예 :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.0'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
Android Studio가 변화하고 있습니다.
Android Studio의 프로젝트 섹션에서 모듈 폴더를 마우스 오른쪽 버튼으로 클릭하면 "모듈 설정 열기"라는 섹션이 있습니다 (버전 0.2.10을 사용하고 있습니다).
Modules
에서는 Project Structure
창에 섹션 이 없습니다 .
종속성, Android 라이브러리 및 다중 프로젝트 설정에 필요한 독서를 고려할 것 입니다. 몇 분 정도 시간을 내십시오.
특히 JAR이 아닌 라이브러리 프로젝트의 경우 위 소스에서 다음 스 니펫을 읽으십시오.
Gradle 프로젝트는 다중 프로젝트 설정을 사용하여 다른 gradle 프로젝트에 의존 할 수도 있습니다. 다중 프로젝트 설정은 일반적으로 모든 프로젝트를 지정된 루트 프로젝트의 하위 폴더로 사용하여 작동합니다.
예를 들어 다음과 같은 구조가 주어집니다.
MyProject/
+ app/
+ libraries/
+ lib1/
+ lib2/
3 개의 프로젝트를 식별 할 수 있습니다. Gradle은 다음 이름으로 참조합니다.
:app
:libraries:lib1
:libraries:lib2
각 프로젝트에는 빌드 방법을 선언하는 자체 build.gradle이 있습니다. 또한 프로젝트를 선언하는 루트에 settings.gradle이라는 파일이 있습니다. 이것은 다음과 같은 구조를 제공합니다.
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
settings.gradle의 내용은 매우 간단합니다.
include ':app', ':libraries:lib1', ':libraries:lib2'
이것은 실제로 Gradle 프로젝트 인 폴더를 정의합니다.
: app 프로젝트는 라이브러리에 의존 할 가능성이 높으며 다음과 같은 종속성을 선언하여 수행됩니다.
dependencies {
compile project(':libraries:lib1')
}
이를 위해 Android Studio GUI를 거의 사용하지 않거나 전혀 사용하지 않았다는 점에 유의하십시오.
현재 git 서브 모듈 을 사용 하여 중첩 라이브러리를 실제 라이브러리 git repo에 연결하여 종속성 혼란을 피합니다.
방금 .gradle 파일에 직접 쓰는 것이 아니라 더 쉬운 방법을 찾았습니다.
Android Studio 1.1.0 용입니다.
메뉴 파일 -> 새 모듈 ... :
"기존 프로젝트 가져 오기"를 클릭하십시오.
원하는 라이브러리와 원하는 모듈을 선택하십시오.
완료를 클릭하십시오. Android Studio는 라이브러리를 프로젝트로 가져옵니다. gradle 파일을 동기화합니다.
가져온 모듈을 프로젝트의 종속성에 추가하십시오.
앱 폴더를 마우스 오른쪽 버튼으로 클릭-> 모듈 설정 열기-> 종속성 탭으로 이동-> '+'버튼 클릭-> 모듈 종속성을 클릭하십시오.
그런 다음 라이브러리 모듈이 프로젝트의 종속성에 추가됩니다.
???
이익
외부 라이브러리 프로젝트를 포함하는 가장 쉬운 방법은 다음과 같습니다 (예 : dependencies 폴더에 하나의 디렉토리가 저장된 Facebook 라이브러리를 포함시키는 것).
settings.gradle에서 추가
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
build.gradle dependencies 섹션에서
compile project ('facebook')
남은 일은 프로젝트를 gradle 파일과 동기화하는 것입니다.
JAR 파일을 라이브러리로 Android Studio 프로젝트에 추가하는 간단한 방법 :
a) * .jar 파일을 복사하십시오
b) 프로젝트 아래 의 libs 디렉토리에 붙여 넣습니다 .
c) build.gradle에 추가하십시오.
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
b) 예제 com.example.MYProject 및 라이브러리 com.example.ScanAPI의 프로젝트가 동일한 네임 스페이스 com.example을 갖는 경우 Android Studio는 빌드를 확인하고 프로젝트에서 필요한 모든 변경 사항을 작성합니다. 그런 다음 메뉴 파일 -> 프로젝트 구조 에서 이러한 설정을 검토 할 수 있습니다 .
c) 프로젝트와 라이브러리에 다른 네임 스페이스가있는 경우 라이브러리 를 마우스 오른쪽 단추로 클릭하고 "라이브러리로 추가"옵션을 선택하고 필요한 유형을 선택해야합니다.
"프로젝트 구조"옵션은 현재 버전의 Android Studio (0.2.3)에서 "build.gradle"에서 자동 변경을 수행하지 않습니다. 이 기능은 다음 버전에서 제공 될 수 있습니다.
그러면 관련 build.gradle 파일이 자동으로 업데이트됩니다.
build.gradle 파일을 열고 종속성 작성에 새 빌드 규칙을 추가하십시오. 예를 들어 Google Play 서비스를 추가하려는 경우 프로젝트의 종속성 섹션은 다음과 같습니다.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.+'
}
프로젝트 패널 Control에서 종속성을 추가하려는 모듈을 + 클릭하고 모듈 설정 열기를 선택하십시오.
종속성 탭을 선택한 다음 왼쪽 하단에서 + 버튼을 선택하십시오. 다음 옵션 목록에서 선택할 수 있습니다.
그런 다음 프로젝트에 추가하려는 종속성에 대한 추가 정보를 입력 할 수 있습니다. 예를 들어 라이브러리 종속성을 선택하면 Android Studio에서 선택할 수있는 라이브러리 목록이 표시됩니다.
종속성을 추가 한 후에는 모듈 수준 build.gradle 파일을 확인하십시오. 새 종속성을 포함하도록 자동으로 업데이트되어야합니다.
외부 라이브러리 프로젝트를 추가하려는 프로젝트에서 메뉴 파일 -> 새로 만들기 -> * 새 모듈 가져 오기 **로 이동하여 프로젝트에 추가하려는 라이브러리 프로젝트로 이동 한 다음 '라이브러리'모듈을 추가하도록 선택하십시오. 당신의 프로젝트. 프로젝트에서 앱, 포함 라이브러리 옆에 다음과 같은 settings.gradle 을 얻습니다 .
include ':app', ':library'
dependencies 섹션 에서 build.gradle (Module : app) 에 추가 하십시오.
프로젝트 컴파일 ( ': library')
프로젝트를 다시 빌드하십시오.
* 원하는만큼 라이브러리 (모듈)를 추가 할 수 있습니다. 이 경우 settings.gradle에는 다음이 있습니다.
include ':app', ':lib1', ':lib2', ...
그리고 build.gradle에는 다음이 필요합니다.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Some other dependencies...
compile project(':lib1')
compile project(':lib2')
...
}
GUI를 통한 라이브러리 종속성 편집은 해당 변경 사항을 build.gradle 파일에 기록하지 않으므로 권장되지 않습니다. 따라서 프로젝트는 명령 줄에서 빌드되지 않습니다. 다음과 같이 build.gradle 파일을 직접 편집해야합니다.
예를 들어 다음과 같은 구조가 주어집니다.
MyProject /
우리는 세 가지 프로젝트를 식별 할 수 있습니다. Gradle은 다음 이름으로 참조합니다.
: app 프로젝트는 라이브러리에 의존 할 가능성이 높으며 다음과 같은 종속성을 선언하여 수행됩니다.
dependencies {
compile project(':libraries:lib1')
}
첫 번째 방법 이것은 MacBook에서 작동합니다.
주어진 화면에서 먼저 builder.gradle 파일을 선택하십시오.
선택한 화면과 같이 종속성을 추가하십시오.
프로젝트 동기화를 선택하십시오.
"프로젝트 ': app'에서 경로가있는 프로젝트 : signature-pad '를 찾을 수 없습니다"와 같은 오류가 발생하면 두 번째 방법을 사용하십시오.
메뉴 파일 -> 새로 만들기 -> 모듈 가져 오기 ... :
클릭 한 후 가져 오기 모듈 ,
내 MacBook 경로와 같은 라이브러리 경로를 제공하십시오.
Finish를 클릭하십시오 . 이제 라이브러리가 추가되었습니다.
ABS 모듈 (파일> 프로젝트 구조에서)을 가져 와서 안드로이드 2.2와 지원 라이브러리 v4를 종속성으로 가지고 있는지 확인한 후에도 @Alex로 여전히 다음 오류가 발생했습니다
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
새로 가져온 모듈을 기본 앱 모듈에 대한 종속성으로 추가하고 문제를 해결했습니다.
Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.
. 내 주요 프로젝트에 라이브러리 프로젝트 (ABS)의 리소스가 표시되지 않는 것 같습니다. 그러나 IDE는 클래스 및 리소스에 대한 참조를 인식합니다. 스크린 샷
라이브러리 이름을 앱의 build.gradle 파일 의 dependencies 블록에 추가 하십시오.
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
지금 implementation
보다는 오히려 사용해야합니다 compile
. 이것은 Android Studio 3.0의 새로운 기능입니다. 차이점에 대한 설명은 이 Q & A 를 참조하십시오 .
com.android.tools.build:gradle:2.3.3
. "컴파일"을 계속 사용하려면 Android Studio 3에서 3.0.0 대신 계속 사용할 수 있습니다 .
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 은 최신 버전의 Android Studio 1.0.1에서 JAR 파일 및 라이브러리 프로젝트를 추가하는 방법에 대한 Dropbox 링크입니다.
스크린 샷이있는 설명서를 참조하십시오. 새로운 사용자에게는 매우 쉽습니다.
해결책을 찾았습니다. 너무 간단합니다. froger_mcs 지침을 따르십시오 .
프로젝트 구조-> 모듈 (소스)에서 src 폴더를 소스 폴더 로 만들어야합니다 .
기본적으로 JAR 파일을 세 가지 방법으로 포함 할 수 있습니다. 마지막은 https://bintray.com/jcenter 온라인 저장소를 사용하는 원격 라이브러리입니다 . 그러나 다른 두 가지 방법 중 하나로 수행하면 JAR 파일이 실제로 프로젝트에 포함됩니다. 자세한 내용은 https://stackoverflow.com/a/35369267/5475941 링크 를 참조하십시오. 이 게시물에서는 Android 스튜디오에서 JAR 파일을 가져 오는 방법을 설명하고 가능한 모든 방법을 설명했습니다.
요약하면 다음과 같습니다 (로컬 주소). 파일이 다운로드되고 이러한 JAR 파일이 실제로 프로젝트에 있습니다.
그러나 인터넷 주소가 이와 같은 경우 원격 라이브러리 (bintray.com jcenter 부분)이며 원격으로 사용됩니다.
도움이 되길 바랍니다.
빌드 gradle 모듈 앱 파일을 열고 종속성을 추가하십시오. 라이브러리를 다운로드하는 경우 가져 오기 및 gradle로 빌드하십시오.
그렇지 않으면 사이드 gradle 모듈 앱에 리포지토리를 추가하십시오.
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
첫 번째 리포지토리가 라이브러리를 다운로드합니다.
그리고 다운로드 한 라이브러리를 컴파일하십시오 :
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
라이브러리를 작성하는 경우 프로젝트를 새 모듈 가져 오기로 가져 오기만하면됩니다.
Android Studio에서 app 폴더 내부로 이동하여 build.gradle 파일을 엽니 다. 여기에 종속성이 표시됩니다 {}. 그 안에 라이브러리 프로젝트를 추가하고 동기화 할 수 있습니다. 이제 라이브러리를 동기화 한 후 라이브러리가 프로젝트에 추가되고 프로젝트에서 해당 함수와 클래스를 사용할 수 있습니다.
나도 같은 문제가 발생하여 다음과 같은 일을했습니다.
메뉴 파일 -> 모듈 메뉴 가져 오기를 사용하여 라이브러리 프로젝트를 모듈로 AndroidStudio IDE로 가져옵니다.
그런 다음 라이브러리 프로젝트를 종속 프로젝트로 사용하려는 기본 모듈로갔습니다.
메인 모듈을 마우스 오른쪽 버튼으로 클릭하십시오 (제 경우 이름은 app )-> 모듈 설정 열기-> 종속성 탭으로 이동-> + 버튼을 클릭하십시오 (창 오른쪽에 나타남)-> 모듈 종속성을 클릭하십시오- > 목록에서 도서관 프로젝트를 선택하십시오
변경 사항을 적용하고 OK버튼을 클릭하십시오 .
그것은 나를 위해 일했다. 나는 그것이 다른 사람들에게도 도움이되기를 바랍니다.
실제로 버전이 변경됨에 따라 메뉴에서 사용 가능한 사용자 인터페이스 및 옵션도 변경됩니다. 이 질문에 대한 대부분의 답변을 읽은 후 Android Studio 1.1.0에서 작동하는 것이 무엇인지 추측해야했습니다 .
마우스를 사용하여 기본 레벨에서 프로젝트를 선택하십시오 (여기서 앱 이름이 표시됨).
마우스 오른쪽 버튼을 클릭하고 새로 만들기, 폴더, 자산 폴더 메뉴 옵션을 선택하십시오 .
자산 폴더를 만든 후 라이브러리에 필요한 JAR 파일을 붙여 넣거나 복사하십시오.
Android Studio의 기본 메뉴 (화면 상단)에서 파일 -> 프로젝트 구조를 선택하십시오 .
그런 다음 프로젝트 이름을 선택하고 종속성 탭으로 이동 하십시오.
+대화 상자의 왼쪽 아래 에있는 더하기 부호 ( )를 클릭 하고 파일 종속성을 선택하십시오.
마지막으로 최근에 생성 한 자산 폴더를 열고 복사 한 JAR 파일을 선택한 다음 적용 및을 클릭합니다 OK.
프로젝트를 정리하고 다시 빌드하십시오.