Skip to main content

[Android] using Dependency in Gradle Build, Android Studio

- 2013.08.05 -
 Android Studio 0.2.3 에서는 repositories {} 가 기본적으로 포함되어 있다. 따라서 아래와 같은 이슈는 나타나지 않을 것이다.

Android Studio 에서도 Maven dependency 처럼 외부 library 를 다운받아서 Build 할 수 없을까? 하는 생각에 커뮤니티에 질문한 결과 답을 얻을 수 있었다.

우선, Maven Central Repository 에서 사용하고자 하는 Library 를 검색하여 Grails repository 를 알아야 한다.

예를들어 okhttp 의 Grails repo 는 다음과 같다.

compile 'com.squareup.okhttp:okhttp:1.1.1'

이제 본격적으로 Android Studio 의 build.gradle 에 적용 하도록 하자.

기본적으로 build.gradle 는 아래와 같다.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

dependencies {
    compile "com.android.support:support-v4:18.0.+"
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 17
    }
}

여기서, 검색한 Grails Repo 를 dependencies 에 추가해 주면 된다.

dependencies {
    compile "com.android.support:support-v4:18.0.+"
    compile 'com.squareup.okhttp:okhttp:1.1.1'
}

여기서 주의 할 점은, dependencies 선언한 윗 부분에 repositories 를 다시 선언 해서 mavenCentral()을 사용한다는 것을 재 명시 해 주어야 한다는 점이다. 즉 코드로 보면 아래와 같다.

repositories {
        mavenCentral()
}

dependencies {
    compile "com.android.support:support-v4:18.0.+"
    compile 'com.squareup.okhttp:okhttp:1.1.1'
}

결과적으로 전체 코드는 아래와 같다.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {

    compile "com.android.support:support-v4:18.0.+"
    compile 'com.squareup.okhttp:okhttp:1.1.1'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 17
    }
}

이렇게 하면 Maven 에서 dependency 를 사용하는 것 처럼 Gradle 에서 도 사용할 수 있다.

Comments

Popular posts from this blog

[Book] 다양한 예제로 학습하는 데이터구조와 알고리즘 for Java

인사이트 에서 Java 를 이용한 자료구조 & 알고리즘 도서가 나온다는 소식을 듣고 기다리고 있었는데, 때마침 JCO 때 인사이트 부스에서 판매하고 있었다. 원래 사려고도 했고, 책도 몇권안남아서 보자마자 바로 구입! fig1. 책 이미지 기다렸던 책이기도 했고, 이참에 자료구조를 재대로 공부해보자 라는 다짐으로 읽기 시작했다. 찾아보니 원서는 Amazon 에서도 별점이 꽤 높아보였다. 아직 초반이지만, 읽으면서 아쉬운 부분을 먼저 좀 써 보려고 한다. 아무래도 많이 기대했던지라, 좋은점 보다는 아쉬운 점이 많이 눈에 보이게 된다. 1. Java 스럽지 않은 코드 인사이트에서 출판한 이 책은 C 버전도 있다. C 버전을 좀 봐야 알겠지만, 아마도 이 책은 C 기반으로 작성 된 후, Java 로 포팅 된 느낌을 강하게 받는다. 역자 서문에서도 저자가 C 기반의 코드로 작성해서 Java 스럽지 못한 부분이 있다고 말하고 있다. 그래도 네이밍 이라던지, 기본적인 코드 스타일이 전혀 Java 스럽지 못하다 보니 보는내내 좀 불편한 기분이 든다. (난 각 언어별로 스타일을 좀 중요시 보는 편이라 아무래도 눈에 많이 거슬리는 편이다.) 또한, 자료구조를 설명하는 과정에서 포인터 라는 단어가 많이 나타난다. 아무래도 C 로 설명한 부분을 Java 로 옮기다 보니 단어 선택이나, 표현방법에서 Java 로 표현하기 애매한 부분이 있는것으로 보인다. C 랑 Java 를 모두 공부했다면 그러려니 할 수 있는 부분이지만, Java 만 조금 알고 있는 상태에서 자료구조를 공부하기 위해 이 책을 구입했다면 아마 설명 부분에서 난해하게 느껴질 수 도 있다. 2. 예제 코드의 오류. 예제코드를 타이핑 하다보면, 스펠링이 틀리거나, 앞에서 소개한 메소드를 사용하는데 메소드명이 서로 다르다거나 하는 문제로 코드가 정상적으로 동작하지 않는 문제가 보인다. 이런 문제는 번역과정에서 조금 아쉬운 문제로 보인다. Amazo...

[Python] Core Python Application Programming 예제 3-1 수정

코어 파이썬 애플리케이션 프로그래밍 146~7p 의 예제 3-1 코드가 정상적으로 동작하지 않는 이유는 아래와 같습니다. 문제가 되는 구간은 40~41 라인, 44 라인인데 라인 비교를 위해 38 라인부터 보면, 책의 경우, except ftplib.error_perm: print 'ERROR: cannot read file "%s"' %FILE if os.path.exists(FILE): os.unlink(FILE) else: print '*** Download "%s" to CWD'%FILE f.quit() 그러나 실제로는 아래와 같이 되어야 정상적으로 동작 합니다. except ftplib.error_perm: print 'ERROR: cannot read file "%s"' %FILE if os.path.exists(FILE): os.unlink(FILE) else: print '*** Download "%s" to CWD'%FILE f.quit() 이유인즉, 40~41 라인 코드가 다운로드 완료 if 문으로 동작해서 다운로드 완료 된 파일을 다시 삭제하기 때문입니다. 따라서 전체 동작하는 코드는 아래와 같습니다. #!/usr/bin/env python import ftplib import os import socket HOST = 'ftp.mozilla.org' DIRN = 'pub/mozilla.org/webtools' FILE = 'bugzilla-LATEST.tar.gz' def main(): try: f = ftplib.FTP(HOST) except (socket.er...

[Googe I/O 2014] 국산 재료로 Cardboard 만들기!

올해 Google I/O 에서 가장 흥미있었던 내용중 하나가 바로 Cardboard 였다고 한다. 사실 난 Android L Preview 와 Material Design 에 때문에 상대적으로 이녀석을 홀대하고 있었는데, 회사 선임님께서 요놈이 얼마나 대단한 녀석인이 알려주신 덕분에 관심을 갖게 되었다. 더군다나 제작 방법은 물론 Libraray 까지 제공하다니... 그래서 바로 만들기로 결정. 우선 아래 사이트를 참고하자. 1. Reference SIte - Cardboard 제작 - Cardboard API 사이트를 들어가면 친절하게 구매할 수 있는 사이트까지 링크되어 있으나...전부 아마존. 참고로 이 글을 쓰고 있는 지금까지 아마존에서 주문한 렌즈를 받지 못했다.(한 2주 된듯.) 그래서! 결국 국내에서 파는 제품들로 꾸려보기로 했다. 순수 국내산으로~ 이미 nurinamu 님 께서 블로깅을 하셨지만... 여튼. 필수 재료는 아래를 참고하자. 2. 국내에서 구입한 재료 목록 1)  렌즈 - 양면 볼록 렌즈 : 유리 / 직경 : 30mm / 초점거리 : 46mm (한알당 3,300원) 2)  자석 - 네오디움 원형사라 자석 : 지름 : 20mm / 두께 4T (1,460원) - 페라이트 자석 : 지름 : 20mm / 두께 5.0mm (2,000원) 3)  골판지 - 택배 박스 사용 (0원) NFC 는 집에서 저장할 방법도 없으니 Pass. 고무줄이나 밴드는 취향에 맞게... 사실 도면도 공개되어 있고, 재료만 구하면 만드는건 쉽다. 굳이 설명을 하자면... 자르고... 자르면 ... 골격완성! 그리고... 오랜 기다림 끝에 결국 받지못한 아마존 렌즈를 뒤로하고, 국내 사이트에서 주문한 렌즈를 끼워주면... (국내산 렌즈는 오전에 주문하고 다음날 점심에 바로 겟.) 이렇게 완성! 개인적으로 신기했던 것중 하나...