본문 바로가기

android13

스레드에서 View 변경시 Only the original thread…. 에러 대처법 게임을 만들다 보면 스레드를 자주 이용하게 된다. 그러다보면 Only the original thread that created a view hierarchy can touch its views 라는 에러를 맞다들이게 되는 경우가 반드시 찾아온다... 이 에러는 말그래로 오리지널 스레드... 즉, 앱 실행시 자동으로 생성되는 메인 스레드외에 직접 만든 스레드로 뷰위젯등을 컨트롤할려고 할때 발생한다... 예를 들어 TextView의 setText()같은 것이다... 나도 처음 게임을 만들 당시 이것 때문에 몇일을 고민했던 적이 있었다... 그러다 찾아낸것이 View의 Post()였는데 이방법은 특정사항에서는 작동이 안되는 문제가 있었다... 결국, 우연한 기회에 Handler 방식을 알게되었는데 역시 다른.. 2013. 11. 25.
큰 배경이미지 사용시 OutOfMemoryError의 확실한 해결법 안드로이드 앱을 만들때 배경이미지를 넣어야 하는 경우 OutOfMemoryError에 직면하는 경우가 많다.. 특히 사이즈가 큰 배경이미지 일수록... 자주 발생한다... 즉, OutOfMemoryError는 이름처럼 이미지를 로딩할때 메모리가 부족해서 발생하는것이다... 이럴경우 그원인이 되는 이미지 사이즈 자체를 줄이거나 로딩할때 아래와 같이 사이즈를 줄여서 불러오면 일단 해결은 된다. BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.opening, options); .. 2013. 10. 4.
페이스북앱이 설치되어 있을때 페이스북 api로 로그인이 안되는 문제 android facebook api(sdk)로 로그인 작업을 하다 보면 발생하는 치명적인 문제가 있다 폰안에 페이스북앱이 설치되어 있지 않을때는 로그인 화면으로 웹뷰가 띄어지면서 잘 로그인된다. 하지만 페이스북앱이 설치되어 있을때에는 웹뷰가 아닌 페이스북앱이 실행되면서 로그인이 이루어지는데 여기서 버그인지 아님 원래 그런건지 로그인이 계속 실패한다. 처음에는 내가 잘못 코딩한지 알았는데 예제를 돌려봐도 똑같은 현상이 발생했다. 그래서 몇일동안 삽질끝에 해결책을 찾아내었다^^ 해결책은 역시 예제안에 숨어있었다ㅎㅎ 예제중에 SwitchUserSample이라는 프로젝트가 있는데이 예제에서 로그인 유저를 바꿀때에는 항상 로그인 화면 웹뷰가 뜨면서 잘되는것이다ㅎㅎ이부분을 집중 분석하여 아래와 같은 해결코드를 작.. 2013. 8. 23.