본문 바로가기

안드로이드116

GooglePlayService를 사용하는데 IncompatibleClassChangeError 오류는 왜 발생 왜하는가? 기존 앱에서 이미 GooglePlayService를 사용하고 있었고, Moloco라는 퍼포먼스 마케팅을 위한 라이브러리를 추가하는 중이였습니다. 하지만 Moloco 라이브러리를 추가한 후 앱을 실행하자마자 Moloco를 초기화하는 코드에서 아래와 같은 오류가 발생했습니다. Exception E/AndroidRuntime: FATAL EXCEPTION: main Process: com.dhna.sampleapp, PID: 20003 java.lang.IncompatibleClassChangeError: The method 'boolean com.google.android.gms.common.api.GoogleApiClient.isConnected()' was expected to be of type int.. 2016. 2. 22.
롤리팝 메모리 누수 버그 메모리 누수에 관련된 글들을 읽고 있던 중에 눈에 들어온 하나의 블로그 글을 발견했습니다."삼성, '갤럭시 S6/엣지' 롤리팝 5.1.1 배포 - 메모리 버그 고친 삼성, 급한 불 껐나?" 라는 제목으로 실린 글입니다. 요점을 정리하면,'갤럭시 S6 & S6 엣지' 에서 메모리 누수 문제가 발생했고, 이 버그는 안드로이드 5.0 부터 재현된 버그이다.삼성에서는 이 버그에 빠르게 대응하여 메모리 누수 버그를 고친 Android 5.1.1 업데이트를 배포했다.그러나 아직 구글에서는 메모리 누수 문제 근본적으로 해결하지 못했다. 여기서 안드로이드 5.0 부터 발생한 버그인데 구글이 아직도 버그를 고치지 못했는지 궁금해서 검색을 했습니다.구글에서 "Android 5.0 momory leak"으로 검색하면 ZDN.. 2015. 11. 7.
안드로이드 앱 강제 종료 재현하기 안드로이드는 시스템 메모리가 부족하면 백그라운드로 전환된 앱들을 메모리에서 강제로 제거한다.그리고 앱을 다시 실행하면 onSavedInstanceState()에서 저장된 데이터를 onCreate() 또는 onRestoreInstatnceState()에서 복원하여 화면을 재구성하게 된다. 일반적으로 별다른 문제 없이 동작하지만, 종종 Activity에서 복원 중 호출하는 메소드들을 Override 하게되면 문제를 일으키게된다.명백한 개발자의 실수이고 버그를 수정한 후 QA를 하기 위해서 이 문제를 재현할 수 있는 방법도 알아야한다. 안드로이드 개발자라면 PATH 환경변수에 안드로이드 Tools들을 설정했을 것이라고 생각된다.그렇다면 간단히 테스트 해볼 수 있다. 재현하기A앱을 실행한다.Launcher 화면.. 2015. 11. 7.
APK 확장 파일 사용하기 - APK Expansion Files APK 확장 파일 APK Expansion Files 정확한 내용은 안드로이드 공식 문서를 보시기를 바랍니다. 왜 APK Expansion Files을 사용하는가?현재 Google Play는 50MB 이하의 APK파일만을 허용하고 있다. 그래서 50MB를 초과하면 Google에서 제공하는 APK Expansion Files 서비스를 이용해서 업로드 할 수 있다. 꼭 Google에서 제공하는 APK Expansion Files 서비스를 이용할 필요는 없다. 코드와 리소스 정리를 통해서 APK 크기를 50MB 이하로 줄이거나 별도의 서버를 구축해서 사용해도 된다. 결론은 Play Store 업로드를 위해 APK 파일을 50MB 이하로 줄이면 OK! 어떤 제한이 있는가?가장 큰 제한은 확장 파일을 최대 2개까.. 2014. 7. 21.
안드로이드에서 구글 드라이브와 연동시 발생하는 오류 해결 지금으로부터 약 6개월? 정도.. 그러니 2013년 7~8월쯤 이였을 겁니다. 전에 안드로이드 디바이스에서 파일을 구글 드라이브와 연동하는 프로젝트를 진행했었습니다. 구글에서 제공하는 Sample 코드들이 있어서 연동이 어렵지는 않았지요. 대신 디렉토리 구조를 그대로 유지해야해서 경로에 대한 작업을 조금 하게 됐습니다. 많은 상황을 고려하지 않았지만 연동은 어느정도 동작하게 됐습니다. 문제는 2개월 정도 전에 테스트를 해보니 구글 드라이브에 인증을 실패하더군요. 로그는 아래와 같습니다. 02-27 18:23:43.466: E/AndroidRuntime(25441): FATAL EXCEPTION: Handler02-27 18:23:43.466: E/AndroidRuntime(25441): java.lang.. 2014. 3. 7.
한글이 포함된 javadoc을 생성할 때 발생하는 오류 환경설정에서 workspace를 UTF-8로 변경했어도 한글이 포함된 javadoc을 생성할 때, 아래와 같은 오류를 볼 수 있습니다.error: unmappable character for encoding ASCII 일단 ASCII를 사용하고 있기 때문에 오류가 발생하고 있다는 것을 알 수 있습니다. 그렇다면 javadoc에서 UTF-8을 사용하도록 해주면된다. javadoc을 생성할 때 아래의 옵션을 추가하면 됩니다.-locale ko_KR -encoding UTF-8 -charset UTF-8 -docencoding UTF-8 [출처] JavaDoc 한글 뽑아내기 javadoc을 생성하는 방법은 위의 출처로 이동해서 보시면 됩니다. 그림과 함께 설명하고 있으니 쉽게 따라 할 수 있습니다. 2014. 2. 27.