본문 바로가기

분류 전체보기

(38)
[Error] Execution failed for task ':app:transformClassesWithDexForDebug' · Execution failed for task ':app:transformClassesWithDexForDebug' Android Studio에서 테스트용 앱을 새로 만들다가 에러가 발생했다!! 1 무슨 에러인가? 내가 겪은 상황은 아래 스크린샷과 같다. 문제의 원인은 Android는 메소드의 갯수의 제한이 있다. 메소드의 ID를 지정하게 되는데 그 아이디는 0~0xffff 까지 지정이 된다.그 갯수가 65536개이고 지금 현상은 그 수를 넘은것이다.위치 테스트를 하기 위해서 googlePlayService 라이브러리를 추가한것이 문제를 야기했다.googlePlayService 뿐만아니라도 다른 라이브러리를 여러개 추가해 사용하면 충분히 발생할 수 있는 문제이다. 2 해결 - 문제가 된 라이브러리 c..
[Error] Execution failed for task ':app:compileDebugJavaWithJavac' · Execution failed for task ':app:compileDebugJavaWithJavac' Android Studio에서 앱 디버그를 하다가 다음과 같은 에러가 떴다.Execution failed for task ':app:compileDebugJavaWithJavac'검색 결과도 별로 없고 막막했는데 해결한 결과를 작성하겠다. 1 무슨 에러인가? Execution failed for task는 뻔하지만 결국 실행 오류라는 말이다. 내가 겪은 상황은 아래 스크린샷과 같다. 2 해결 문제는 저 jarSnapshots.bin 파일에 문제가 생겨서 발생한 에러이다.동일하지는 않지만 비슷한 문제를 겪은 글을 보았고 캐시가 꼬였다고 판단하여 저 폴더를 지워버렸다.c:/사용자/계정/ 아래에 위치한..
[Proguard] 라이브러리 룰 모음집 · 프로가드 라이브러리 Rules Github 앱을 마켓에 출시 할때 적용해야 할것중 하나 Proguard.이번에 Proguard를 적용하다가 유용한 사이트를 알게되서 이곳에 적어 놓는다. 1 라이브러리 룰 추가 귀찮다! 앱을 만들다 보면 AWS, Google, Glide ... 등 여러가지 라이브러리를 사용하게 되는데보통 프로가드 룰을 추가해주어야 하는 번거로움이 있다.라이브러리가 공유되는 Github 마다 룰이 적혀 있긴 하지만이 룰들을 한곳에 모아놓은 Github이 존재한다. - Link https://github.com/krschultz/android-proguard-snippets 이 링크를 들어가면 룰들이 정리가 되어있어서 여러가지를 한번에 추가하기에 유용하다. * 룰을 추가 하기 전에 라이브..
[Array] 배열의 함수 php 배열에서 사용 가능한 기본적인 4개의 함수를 알아 보도록 하겠다. 1. array_push() : 맨 끝에 원소를 추가한다.2. array_pop() : 맨 끝에 원소를 제거한다.3. array_shift() : 맨 앞에 원소를 제거한다.4. array_unshift() : 맨 앞에 원소를 추가한다. 1. array_push()array_push()는 key가 없는 배열에서 사용 할 수 있는 값 추가 함수이다. [코드]$arr = array('메시', '수아레즈', '네이마르');array_push($arr, '이니에스타');array_push($arr, '사비');print_r($arr); [결과]Array ( [0] => 메시 [1] => 수아레즈 [2] => 네이마르 [3] => 이니에스타 ..
[Array] 배열의 추가와 삭제 배열의 값을 추가하고 삭제 하는법에 대해서 알아본다.이 방법은 배열에 Key과 Value가 있을 때 사용 가능한 방법이다. 1. 배열의 추가 [코드]$arr = array('A'=>'a','B'=>'b','C'=>'c');$arr['D'] = 'd';print_r($arr); [결과]Array ( [A] => a [B] => b [C] => c [D] => d ) 2. 배열의 제거 [코드]$arr = array('A'=>'a','B'=>'b','C'=>'c');unset($arr['C']);print_r($arr); [결과]Array ( [A] => a [B] => b)
[Array] 배열의 초기화, 선언 php에서 array를 다루는 법에 대해서 대해 작성하겠다. 1. array의 초기화PHP의 Array는 두가지 방법으로 초기화가 가능하다. $arr = [];$arr = array(); * []의 선언방법과 array() 선언방법은 결과값이 같다.var_dump() 로 출력했을때array(1) { ["key"]=> string(5) "value" } print_r() 로 출력했을때Array ( [key] => value ) 나는 array()의 선언을 선호한다.왠지 알아보기 쉽다. 2. key & value의 선언초기화 방법이 두가지 이듯 key와 value를 넣는 방법도 두가지다. $arr = ['key' => 'value'];$arr = array('key' => 'value');
[Glide] 3. Image Resize Glide의 image resize의 기능에 대해서 알아보겠다. 직접 서버에서 size를 미리 정의를 해서 받아오는 이미지를 제외하고는 웹에서 불러오는 이미지의 크기는 전부다를 경우가 많다. 극단적으로 어쩔때는 100*100의 이미지가 넘어오는가 하면 2000*2000의 이미지를 받아보게될 수도 있다. 물론 ImageView 사이즈에 맞에 알아서 잘 표시 되도록 되겠지만 100*100과 2000*2000의 이미지 용량은 꽤나 차이가 날 수 있다. 이를 대비하여 이미지의 사이즈를 imageView에 표시 되기 전에 resize를 해줄 수 있는 기능이 있다. 1. override일단 .override()는 아래와 같이 사용한다.Glide.with(this) .load(url) .override(int, in..
[Design Pattern] 싱글톤 팁 디자인 패턴중 하나인 Singleton 패턴에 대해 사용하다가사람들마다 스타일이 있는걸 알았다 여러가지 스타일이 있겠지만 그중에서 두개를 골랐다. 첫번째 스타일.public class One { private static One ourInstance = new One(); public static One getInstance() { return ourInstance; } private One() { } } ourInstance 변수를 선언하고 바로 new One()을 생성하는 방법이 있고 두번째 스타일.public class Two { private static Two ourInstance = null; public static Two getInstance() { if (ourInstance == nul..