본문 바로가기

나의 플랫폼/안드로이드

꼭!!! 다이얼로그를 onDestroy에서 dismiss 시키는 버릇을 만들자~ 제목 대로 안드로이드에서 다이얼로그를 만든 후, dismiss를 시키지 않고 Activity를 종료한 후,WindowManager를 이용하여 addView를 추가 시키고자 할때 아래와 같은 에러 메세지를 보이게 된다. 참고:http://www.jjoe64.com/2011/06/how-to-fix-windowmanager.html E/WindowManager( 1374): Activity com.jjoe64.example.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405446f8 that was originally added hereE/WindowManager( 1374): android.view.. 더보기
AsyncTask를 사용하는데 동기화가 안되는 현상. 참고 : http://trend21c.tistory.com/1715 위 사이트를 들어가면 제대로 정의 되어 있다. 삽질중에 중요한 안드로이드의 API변화를 발견하게 되었습니다. When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. After HONEYCOMB, it is planned to change this back to a single thread to avoid common application errors.. 더보기
[안드로이드] com.android.dex.DexIndexOverflowException 안드로이드를 개발하다 보면, 많은 오픈 라이센스 라이브러리를 사용하게 됩니다.문제점은 이 라이브러리에 기능적으로 문제가 없더라도 Android Studio에서 빌드를 하게 되면 아래와 같은 에러가 뜨면서 빌드가 되지 않습니다.com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 이유는 구글에서 메소드 갯수에 제한을 두고 있기 때문에 그 갯수를 넘으면 빌드가 되지 않습니다. 그래서 위와 같은 에러가 발생했을 때는 라이브러리를 줄일수 있을 만큼 줄이는게 해결 책입니다. 아마 가장 많이 발생하는 부분은 google service를 사용할 때 입니다.build.gradle 파일에 google service를 추가할때 아래와 .. 더보기
[Android Studio] error occurred during initialization of vm Android Studio를 설치하고! 이제 개발해보자 하는 순간 Gradle 관련하여 Heap 메모리가 부족하다는 에러가 발생하여 불능 상태가 됩니다. VM을 만들수 없다는 건데요. Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon at http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html Please read the fol.. 더보기
git 관련 명령어 [ repo reset ]repo forall -c git reset --hard TAG [branch 확인 방법]cat .git/config [ CR 제거 명령어. ]find ! \( -path ./.git -prune \) -type f -exec sed -i -e 's/^M//g' {} \; find ./ -name '*.java' | xargs -n 1 sed -i 's/\r//g' git pullgit reset --hard [commit id]git statusgit add .git commit -m "메세지" git commit --amend repo upload . [Rebase 방법]1. base로 바꿀 permalink로 이동.2. pull 버튼을 선택 하고, 나온 값을 복사.3. an.. 더보기
[ Android ] Custom Preference. Preference를 Custom하게 만들고 싶을 경우 다음과 같이 해보아라. 먼저, Custom 하게 만들기 위해서 기본 Prefernce의 layout형태를 파악 해야합니다.http://stackoverflow.com/questions/6194116/creating-a-custom-layout-for-preferences 위 소스 중에 주석처리가 되어 있는 부분을 해석해 보시면.actual preference는 여기애 놓아라!! 라는 말이 있죠!저 LinearLayout안에 원하는 Custom Layout을 넣으시면 preference가 Custom 하게 바뀝니다. 중요한거!!!원래 Preference 속성에서 android:widgetLayout 에 custom한 layout xml만 지정을 해줘도.. 더보기
정규식 표현 // 아스크 코드 0x20 ~ 0x7e만 허용InputFilter filter = new InputFilter() {@Overridepublic CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) {Pattern pattern = Pattern.compile("^[ -~]*$");if (!pattern.matcher(source).matches()) {return "";}return null;}}; 더보기
객체 File 저장 클래스 package kr.co.apsi.util; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream; import android.app.Activity;import android.content.Context; public class CFileController {Context mContext; Thread worker; WriteObjectToFile writer; // StateControl Constructor p.. 더보기