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

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


액티비티 한 장 달랑 있는 프로젝트를 빌드하는데 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 데브로망스

댓글을 달아 주세요

안드로이드 스튜디오를 설치하고 실행하면 "경고"라면서 큰 팝업창이 떴습니다.

몇 번 지나쳤는데 점점 귀찮아져서 대체 뭐길래... 찾아봤습니다.


아래와 같은 문구가 있고요.

Server’s certificate is not trusted

Accepted certificate will be saved in truststore

C:/Users/Juno.Han/.AndroidStudio1.3/system/tasks/cacerts with default password changeit


이런 의미였습니다.

*인증서가 default 비밀번호(changeit)로 설정되어 있으니 변경하려는 경고 문구


안드로이드가 설치된 폴더로 이동해서 keytool로 인증서의 디폴트 비밀번호를 바꿔주면 됩니다.

cmd.exe 실행

>cd C:\Users\[USER]\.AndroidStudio1.3\system\tasks

>keytool -storepasswd -keystore cacerts

Enter keystore password: changeit

New keystore password: [NEW_PASSWORD]

Re-enter new keystore password: [NEW_PASSWORD]


깔끔하게 실행됩니다. ^^


[참고] keytool의 기본적인 명령어를 아주 잘 정리한 사이트로 이동하기





Posted by 데브로망스

댓글을 달아 주세요

Google Play Service Lib 사이즈가 어느 순간부터 MB 단위로 커졌습니다.

라이브러리를 추가해서 빌드하면 APK 사이즈가 몇 메가가 추가되는게 불만이었는데,


버전 6.5부터 필요한 API 군을 선별해서 빌드할 수 있게 되었고,

Android Studio에서 build.gradle 만 살짝 변경해주면 APK사이즈를 1.2MB나 줄일 수 있었습니다.


모듈 디렉토리 하위에 있는 build.gradle 파일을 보면,

보통은 아래처럼 기록했었습니다.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:7.5.0'
}


이제는 필요한 API 군만 선택해서 기록할 수 있습니다.


만약, 지도와 위치서비스를 사용한다면...

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services-location:7.5.0'
    compile 'com.google.android.gms:play-services-maps:7.5.0'
}


Hello world 프로젝트를 만들어서 APK사이즈를 비교해봤습니다.


 LIB 없음

LIB전체 추가 

선별추가(Map, Location) 

 886KB

3,134KB 

1,841KB 



이제껏 몰랐네요. >.<

이클립스에서 스튜디오로 옮기려고 이것저것 둘러보는 중에 알게되었습니다.


역시 개발자가 멍청하면 사용자의 스마트폰 패킷을 남용하게 되네요.

다음 배포부터 적용해야겠습니다.



[참고]

https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project

Posted by 데브로망스

댓글을 달아 주세요