안드로이드 개발 질문/답변
(글 수 45,052)
stjoo님이 공개해주신 한글키보드 설치후 실행시 문제입니다.
소스추가없이 단말에 설치해보았는데요 .
입력기가 활성화 된 상태에서 Landscape나 fortlate 로 전환시 다음과 같은 예기치못한 오류가 뜨네요.
그래서 DDMS에서 로그를 확인한 결과 다음과 같은 오류가 표시되었습니다.
에러가 일어난 부분중 소스와 관련된 부분이 그림과 같이 표시된 곳으로 루트를 확인하였습니다.
다음이 그 부분입니다.
에러메시지에서 표시된 227라인은 정확히 super.OnConfigurationChanged(conf);
구문입니다. 몇번을 봤지만 오버라이드하는 이 소스부분에서 랜드스케이프 모드변화시 왜 오류가 발생하는지 모르겠습니다.
랜드스케이프 전환을 제외하고는 정상동작을 합니다.
이 소스를 기본으로 입력기를 만들다가 랜드스케이프시 오류발생문제가 생겨 원본소스만으로 테스트해보았는데
같은 문제가 발생하네요. 도움이 절실한상황입니다. ㅜㅜ
안드로이드버전은 1.5R3 이고, 소스는 "안드로이드 SDK개발 정보"에 있는 stjoo님이 공개해주신 소스입니다.
참고로 기본 AndroidKeyboard의 경우는 랜드스케이프 모드전환시에도 정상작동합니다.
소스추가없이 단말에 설치해보았는데요 .
입력기가 활성화 된 상태에서 Landscape나 fortlate 로 전환시 다음과 같은 예기치못한 오류가 뜨네요.
그래서 DDMS에서 로그를 확인한 결과 다음과 같은 오류가 표시되었습니다.
에러가 일어난 부분중 소스와 관련된 부분이 그림과 같이 표시된 곳으로 루트를 확인하였습니다.
다음이 그 부분입니다.
에러메시지에서 표시된 227라인은 정확히 super.OnConfigurationChanged(conf);
구문입니다. 몇번을 봤지만 오버라이드하는 이 소스부분에서 랜드스케이프 모드변화시 왜 오류가 발생하는지 모르겠습니다.
랜드스케이프 전환을 제외하고는 정상동작을 합니다.
이 소스를 기본으로 입력기를 만들다가 랜드스케이프시 오류발생문제가 생겨 원본소스만으로 테스트해보았는데
같은 문제가 발생하네요. 도움이 절실한상황입니다. ㅜㅜ
안드로이드버전은 1.5R3 이고, 소스는 "안드로이드 SDK개발 정보"에 있는 stjoo님이 공개해주신 소스입니다.
참고로 기본 AndroidKeyboard의 경우는 랜드스케이프 모드전환시에도 정상작동합니다.
2009.08.29 20:34:36
하아 몇시간내내 보았는데 어딜 손대야 댈지 막막하네요.. 혹시 테스트가능하신분 부탁드려봐도 될까요? 소스는 "안드로이드 개발정보"게시판에 "stjoo" 게시물에 있는 소스입니다. ㅠ_ㅠ
2009.09.07 13:51:35
자답: 하하 결국 고뇌끝에 찾아냈습니다. 문제는 onStartInputView 에서 Default 스킨의 경우 View를 생성한것을 인식못하여서 입니다.
if else문이였던것을 아예 해제해버리면 됩니다.
if else문이였던것을 아예 해제해버리면 됩니다.
2011.10.19 10:59:44
저도 위의 super.onConfigurationChanged(conf); 때문에 고생한 사람인데.
onCreateInputView 의 다음과 같은 스킨을 불러와서 설정하는 부분을 직접 불러와서 넣는 방법으로 해결했습니다.
String[] strValues = getResources().getStringArray(R.array.pref_skin_values);
int[] resId = { R.layout.input, R.layout.custom_input };
for(int i = 0; i < strValues.length; i++)
{
view = (LatinKeyboardView) getLayoutInflater().inflate(resId[i], null);
view.setSkin(strValues[i]);
view.setOnKeyboardActionListener(this);
mInputViewList.add(view);
}
////////////////////
mInputView = (LatinKeyboardView) View.inflate(this, R.layout.input, null);
mInputView.setSkin(strValues[0]);
mInputView.setOnKeyboardActionListener(this);
전 3일을 고생했네요. 후의 개발자는 시행착오없이 참고 바랍니다.