안드로이드 스튜디오에서 외부라이브러리를 추가하려면 해당 모듈의 build.gradle 파일 안에 뭔가 적어줘야 합니다.


dependencies {
    compile 'com.google.android.gms:play-services:6.1.71'
    compile 'com.android.support:appcompat-v7:21.0.3'
}

그중에 google-play-services_lib는 자주 업데이트되고, 그때그때 수정/추가되는 API들도 있어서

해당 모듈에 맞게 버전을 관리해줘야 합니다.


이클립스에서는 그냥저냥 버전관리하면서 가져다 쓰고 했었는데,

스튜디오에서는 정확한 버전명칭(6.1.71)을 적어줘야 하네요.



한참을 웹서핑한 후, 버전 목록을 찾을 수 있었습니다.


아래 위치입니다.


[SDK_PATH]\extras\google\m2repository\com\google\android\gms\play-services


모든 라이브러리 버전이 다운로드되어 있었네요. 

폴더명이 바로 버전명입니다.


거기에 "maven-metadata.xml"파일이 들어있는데, 열어봤습니다.


<?xml version="1.0" encoding="UTF-8"?>

<metadata>

  <groupId>com.google.android.gms</groupId>

  <artifactId>play-services</artifactId>

  <versioning>

    <release>8.1.0</release>

    <versions>

      <version>3.1.36</version>

      <version>3.1.59</version>

      <version>3.2.25</version>

      <version>3.2.65</version>

      <version>4.0.30</version>

      <version>4.1.32</version>

      <version>4.2.42</version>

      <version>4.3.23</version>

      <version>4.4.52</version>

      <version>5.0.89</version>

      <version>6.1.11</version>

      <version>6.1.71</version>

      <version>6.5.87</version>

      <version>7.0.0</version>

      <version>7.3.0</version>

      <version>7.5.0</version>

      <version>7.8.0</version>

      <version>8.1.0</version>

    </versions>

    <lastUpdated>20150922215754</lastUpdated>

  </versioning>

</metadata>


최신버전은 8.1.0이네요.


참고로, 

google-play-services_lib외에 다른 Google API의 버전명칭도 위에서 말씀드린 폴더에서 모두 찾으실 수 있습니다.







Posted by 데브로망스

댓글을 달아 주세요

사내 보안 때문에 어떻게든 해결하려고 했는데, 결국 포기했습니다.

(분명 보안담당자가 뭔가 모르는 것 같은나, 저는 더 몰라서...^^)


액티비티 한 장 달랑 있는 프로젝트를 빌드하는데 10분~30분 소요되다가 결국 에러를 뱉어냅니다.

대략 아래 같은 로그를 떨구면서요.


Caused by: org.apache.http.conn.HttpHostConnectException: Connection to https://jcenter.bintray.com refused

at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)

at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)

at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)

at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)

at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)

at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:137)

at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:118)

at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:113)

at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead(HttpClientHelper.java:90)

at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:81)

... 126 more

Caused by: java.net.ConnectException: Connection timed out: connect

at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549)

at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)

... 135 more




일단 gradle-wrapper.properties 파일의 gradle 버전 파일의 URL에서 https를 http로 변경합니다.

#Thu Sep 03 16:00:44 KST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

distributionUrl=http\://services.gradle.org/distributions/gradle-2.6-all.zip



jcenter의 위치도 http로 강제 변경합니다. 프로젝트(상위) build.gradle 을 수정합니다.

buildscript {
    repositories {
        jcenter {
           
url "http://jcenter.bintray.com/"
       
}
    }
    dependencies {
        classpath
'com.android.tools.build:gradle:1.3.1'
   
}

}


사내에서 새 프로젝트를 만들거나 외부 샘플 소스를 다운받으면,

여지없이 위와 같은 작업을 해야하네요. 애효....



Posted by 데브로망스

댓글을 달아 주세요