
오랜만에 Android Studio를 켜서 3.6.2로 버전업을 하였더니 빌드가 실패한다. 아래와 같은 에러들이 보인다. 숫자는 프로젝트마다 조금씩 다른 듯, Git branch와는 관계가 없다. ERROR: Uninitialized object exists on backward branch 45 Caused by: java.lang.VerifyError: Uninitialized object exists on backward branch 45 기존에는 Oracle JDK를 1.8을 설치하여 쓰고 있었는데 Android Kotlin 관련 업데이트와 충돌을 하는 듯 싶다. Jetifier 빌드 툴 동작중 문제가 된다. Jetifier가 무엇인지는 아래 링크 참조 https://developer.androi..
Google IO 2017에서 새로 발표된 Android Studio 3.0 canary 1 버전에는 새로운 Android profiler가 탑재되었다. 이 프로파일러를 동작시키기 위해서는 com.android.toos.build 버전을 2.4 이상으로 올려야 하는데, 업데이트 후 싱크 시 스튜디오에서 다음과 같은 오류가 발생하였다.Failed to notify build listener 이럴 경우 gradle daemon에 업데이트 된 사항이 적용되지 않아 그런 것으로, daemon을 재시작하면된다. Android studio를 재시작하여도 되고, 스튜디오의 터미널 창을 열어 커맨드 명령으로 종료시킬 수 있다. 커맨드 명령은 아래와 같다.[Windows] > gradlew --stop[Linux]> ...
안드로이드에는 런쳐(홈 앱)에 위젯을 사용자 마음대로 설치할 수 있다. 사용자는 주어진 기능이기 때문에 원하는대로 사용하려고 하게되는데, 많이 설치하면 할수록 런쳐가 사용하는 메모리가 커진다는 것을 잘 이해하지 못하는 것 같다. 개발자들도 위젯을 개발해 보지 않으면 위젯의 생명 주기를 잘 이해하지 못하곤 한다.위젯은 런쳐의 메모리를 사용한다.그렇다. 위젯은 런쳐의 메모리를 사용하고 지속적으로 점유한다. 그런데 런쳐는 사실상 계속 살아있는 앱이므로 런쳐의 메모리가 커지면 가용램이 줄어든다고 말할 수 있다 이는 곧 전체적인 폰의 성능 저하로 이어지게 된다. 만약 게임등에 의해 메모리 사용이 극대화 되고 가용램이 없게되면 LMK(Low Memory Killer)에 의해 우선순위에 따라 프로세스들이 죽어가게 된..
안드로이드를 위한 Gradle 안드로이드국내도서저자 : 유동환출판 : 한빛미디어 2016.07.22상세보기Maven을 대체하는 강력한 빌드 툴, Gradle에 대해 책이 나와 읽어보게 되었습니다. 이 책은 안드로이드 앱을 만들기 위해 Gradle을 사용하는 방법에 초점을 맞추고 있습니다. 처음 안드로이드 개발을 하다 보면 빌드를 어떻게 설정해야 할지 참 막막합니다. Gradle에 Android 특성이 플러그인 되어 있어 관련된 부분을 조정해야 하기 때문인데요, 이 책은 이런 경우에 이 책은 큰 도움이 될 것 같습니다.책은 가볍고 얇게 나와 이동 중에도 읽기 쉬웠고 빨리 읽을 수 있었습니다. 일단 한번 훑은 뒤 필요한 부분을 찾아 보거나, 여기서 본 지식을 바탕으로 웹에서 확장된 내용을 검색해 볼 수 있을..
안드로이드(Android) OS 업그레이드가 코앞으로 다가왔다. 누가(Nougat)라고 이름 붙여진 N OS도 이제 막바지다. 애로사항이라고 해야할까.. N OS를 작업하면서 있었던 이슈들을 정리해본다.Multi-window (멀티윈도우, 다중 창 모드)기존에 제공하던 LGE 자체 분할 윈도우 기능을 들어내고 N OS에서 제공하는 API를 사용하여 적용하였다.이번 OSU로인해 가장 많은 일을 하게 된 주요 사항이다. 우리처럼 규모가 좀 되는 회사가 아니면 복잡한 UI를 멀티윈도우에 맞춰 개발하기 쉽지 않을 것 같다. 게다가 초기의 developer preview들은 시도때도 없이 오동작을 하여서 개발과 테스트하기가 어려웠고 구글에 대해 이를 갈게 하는 원인이 되었다.이슈가 너무 많아 나열하기도 어려운데...
안드로이드 텍스트 뷰(TextView)는 화면 끝에 위치할 단어가 길어져 잘릴 것 같으면 그 단어를 자동으로 다음 줄로 줄바꿈 해 줍니다. 이 것을 Word wrap 또는 line wrap이라고 하죠. 그런데 표현할 뷰가 작은 경우 자동으로 줄바꿈 되어 보이지 않았으면 하는 때가 있어요. 그럼 아래와 같이 하면 잘 됩니다.myString.replace(" ", "\u00A0");출처의 작성자도 hack같은 코드라고 합니다만.. 가장 심플하면서도 만족스럽습니다. 모든 공백을 \u00A0으로 바꾸어 주는데요, u00A0은 No-break space 기호로, 스페이스로 보여지지만 워드 분리를 하지 않기 위한 용도로 사용합니다.Android M os에는 android:breakStrategy 옵션도 생겨서, 하..