본문 바로가기

안드로이드

[Android] Unable to execute dex: method ID not in [0, 0xffff]: 65536 Unable to execute dex: method ID not in [0, 0xffff]: 65536 위와 같은 에러는 안드로이드에서 빌드시 메소드 갯수 제한(65K) 이 되어 있기 때문에 이 이상인 경우 빌드를 막아놓아서 발생한 것입니다.이부분을 피하기 위해 안드로이드 에서는 MultiDex를 지원해주고 있는데요. 지금 부터 MultiDex를 설정하는 방법을 알려 드리겠습니다. 1. app/build.gradle 에 아래 소스를 추가 시킵니다.defaultConfig { ... // Enabling multidex support. multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.0' }참고 : http:/.. 더보기
[Android] FragmentPagerAdapter 갱신!!! FragmentPagerAdapter를 사용할 경우 ViewPager와 연동을 합니다.이때 특정 Page에 Fragment를 갱신하고 싶어 모두 알고 계시는 notifyDataSetChanged 함수를 호출 합니다. 하지만! 위 함수를 호출 하더라도 갱신이 되지 않죠!!이럴 경우 아래와 같은 방법을 해보세요. 1. FragmentPagerAdapter 대신 FragmentStatePagerAdapter를 사용한다.2. getItemPosition 함수를 오바라이딩 한다.3. getItemPosition 함수를 이용하여 특정 Fragment만 갱신 한다. @Override public int getItemPosition(Object object) { if (여기는 특정 Fragement를 파악할 수 있는 .. 더보기
[Android] Textview Copy - Clipboardmanager txtView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { ClipboardManager cm = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE); cm.setPrimaryClip(ClipData.newPlainText("text", ((TextView) v).getText())); return false; } });위 소스를 이용하면 TextView를 롱클릭 했을 시, 클립보드로 텍스트가 저장이 된다.이후, EditText 에서 롱클릭을 할 경우 붙여넣기 버튼이 자동으로 생성 되며,카피 했던 텍.. 더보기
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] 외장 하드 접근의 큰 착각. 혹시, 저 같이 생각 하는 사람들이 있을까 해서 이렇게 글을 적습니다. 안드로이드 폰에는 외장 SD card를 지원하는 폰이 있고 지원하지 않는 폰이 있습니다대표적으로 레퍼런스 폰들은 외장 SD card를 지원하고 있지 않죠. 만약 기능상으로 외장 SD card에 접근을 할 때 어떤 함수를 써야하나~ 하면서 API를 뒤집니다.그러면 눈에 띄는 한가지 함수가 보이죠!!Environment.getExternalStorageDirectory() 위 함수명을 보는 순간~~ 오! 할렐루야~~ 안드로이드는 API가 참 잘 되어 있어~ 하면서~바로 이 함수를 호출합니다. 위 Directory를 출력하게 되면"/mnt/sdcard" 로 출력이 되죠~^^ 야르~~ 오예~~~ 이게 외장 SD card 경로 구나 하면서이 .. 더보기
[ Android ] 딴지 라디오 들어보기 아이폰 팟캐스트에서는 쉽게 들을 수 있지만, 안드로이드에서는 어떻게 할 지 답답했습니다. 방법은 간단합니다. ^^ 안드로이드 마켓에서 "radio inn"을 검색 한 후, 설치하세요.^^ 참고로 이 어플은 라디오가 보기 편하게 잘 되어있습니다. 그냥 라디오 들어도 좋으실듯^^ 설치가 끝나시면 라디오 방송사가 나오고 맨 밑에 별표가 있습니다. 즐겨찾기를 추가하는 건데요. 그 리스트를 누르세요. 그럼 위쪽에 "+" 로 된 버튼이 있습니다. 주소를 적으려고 나오는데요. http://old.ddanzi.com/appstream/ddradio.xml [출처] [가이드] 안드로이드 폰에서 딴지라디오를 들어보자|작성자 신발로 생각하는 사람 출처:http://blog.naver.com/PostView.nhn?blogI.. 더보기
[ Android ] SoundPool 시작 및 정지 어플리케이션으로 배경을 깔기 위해 음악실행을 알아보는 중에 SoundPool이라는 클래스에 대해 알게 되었습니다. 우선, 저의 가장 큰 목적은! 어플리케이션이 돌아가는 동안 음악 소리가 계속 나야 한다는 것이다. 그래서 SoundPool 클래스를 static 변수로 만들어서 초기화는 첫번째 Activity에서 해주고 모든 제어는 이 클래스 변수 하나만 가지고 조절하는 쪽으로 했다. public static SoundManager soundManager; public static int musicStreamId; @Override protected void onCreate(Bundle pSavedInstanceState) { // 배경 음악 셋팅 if(soundManager == null){ soundMa.. 더보기