총 게시물 39,202건, 최근 2 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

[안드로이드] java.lang.ClassCastException 오류 질문드립니다

글쓴이 : josep 날짜 : 2018-05-03 (목) 10:49 조회 : 3991
글주소 : http://www.androidside.com/B49/169792
 
  한국소프트웨어기술진흥협회
JAVA,100%무료교육,우수SW기업취업연계, SW기술진흥,SW인재양성기관
edu.kosta.or.kr
  데브렉 자바마스터
JAVA, JSP, 스트럿츠, 스프링, MVC, 온라인 자바 동영상 교육과정.
www.devlec.com
  KGITBANK학원 김종수
상담예약접수처, 중고등학생수시대비, 대학전공, 국비지원취업, 정보보안전문가학원.
www.hrditbank.co.kr
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang


private LinearLayout mContent;


private void bindEditors() {

    .

    .

      final LayoutInflater inflater = (LayoutInflater) mContext

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    .

    final BaseRawContactEditorView editor;

    if (!type.areContactsWritable()) {

    editor = (BaseRawContactEditorView) inflater.inflate(

               R.layout.raw_contact_readonly_editor_view, mContent, false);

       ((RawContactReadOnlyEditorView) editor).setListener(this);

   } else {

    editor = (RawContactEditorView) inflater.inflate(R.layout.raw_contact_editor_view,

               mContent, false);

    .

    .

        editor.setEnabled(mEnabled);

mContent.addView(editor);

    bindGroupMetaData();

}

 

private void bindGroupMetaData() {

   if (mGroupMetaData == null) {

       return;

    }

   int editorCount = mContent.getChildCount();

   for (int i = 0; i < editorCount; i++) {

      

  RawContactEditorView editor = (RawContactEditorView) mContent.getChildAt(i);

         editor.setGroupMetaData(mGroupMetaData);

   }

}


위와같이 'RawContactEditorView editor = (RawContactEditorView) mContent.getChildAt(i);'  을 통해서 캐스팅하는 도중에 런타임 에러가 생깁니다..

7.0버전까지는 문제없이 동작하였는데 7.1.1의 특정 버전에서부터 문제가 생기고있네요;


아래는 로그입니다;


01-01 00:50:42.951  4300  4300 D AndroidRuntime: Shutting down VM

01-01 00:50:42.951  4300  4300 E AndroidRuntime: FATAL EXCEPTION: main

01-01 00:50:42.951  4300  4300 E AndroidRuntime: Process: com.android.contacts, PID: 4300

01-01 00:50:42.951  4300  4300 E AndroidRuntime: java.lang.ClassCastException: com.android.contacts.editor.RawContactReadOnlyEditorView cannot be cast to com.android.contacts.editor.RawContactEditorView

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.editor.ContactEditorFragment.bindGroupMetaData(ContactEditorFragment.java:969)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.editor.ContactEditorFragment.bindEditors(ContactEditorFragment.java:946)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.editor.ContactEditorFragment.bindEditorsForExistingContact(ContactEditorFragment.java:583)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.editor.ContactEditorFragment.setData(ContactEditorFragment.java:537)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.editor.ContactEditorFragment$2.onLoadFinished(ContactEditorFragment.java:2230)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.editor.ContactEditorFragment$2.onLoadFinished(ContactEditorFragment.java:2214)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:489)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManager.java:457)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.content.Loader.deliverResult(Loader.java:144)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.ContactLoader$LoadContactTask.onPostExecute(ContactLoader.java:1166)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.contacts.ContactLoader$LoadContactTask.onPostExecute(ContactLoader.java:1135)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:667)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.os.AsyncTask.-wrap1(AsyncTask.java)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:684)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6126)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)

01-01 00:50:42.951  4300  4300 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)


캐스팅 에러인데 문제가 될만한점 지적해주시면 정말 감사하겠습니다 ㅠ




질문자가 자신의 포인트 5 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 4을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

어비서 2018-05-03 (목) 11:21
https://android.googlesource.com/platform/packages/apps/Contacts/+/android-4.1.1_r6.1/src/com/android/contacts/editor
오류가 RawContactReadOnlyEditorView가 RawContactEditorView로 캐스팅 될 수 없다로 보이는데
제가 보기에는 위 URL 통해서 확인해보니 진짜 그냥 클래스가 달라서 그런거 같네요
댓글주소 추천 0 반대 0
     
     
어비서 2018-05-03 (목) 11:22
[@어비서]
7.1 버전 이전에서 되었던거는 상위뷰로 자동 캐스팅 되서 되었던거 같네ㅐ요
댓글주소 추천 0 반대 0
     
     
josep 2018-05-03 (목) 11:33
[@어비서]
감사합니당 새로 수정해야겠네요
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기