2010-04-23 5 views
0

나는 ListView를 리턴해야하는 뷰와 클래스를 가진 간단한 애플리케이션을 가지고있다. 응용 프로그램은 리팩터링을하지 않으면 작동하며 클래스 이름 만 바꾸는 것이 아니라 리팩토링합니다. 모든 것이 올바르게 변경된 것 같지만 응용 프로그램은 예외를 throw합니다. android.view.InflateException : 이진 XML 파일 줄 # 2 : 클래스를 확장하는 중 오류가 발생했습니다.안드로이드 InflateException 클래스의 리팩터

다시 원래 이름으로 리팩터링하면 모두 정상입니다. 내가 누락 된 이름이 변경되지 않는 이유는 무엇입니까?

코드는 일부 레이아웃 XML은 여전히 ​​이전 이름을 참조하는 것으로 생각된다

package com.mynamespace.more.views; 

import com.mynamespace.more.QTEvent; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.widget.CheckedTextView; 
import android.widget.LinearLayout; 

public class MyListItem extends LinearLayout { 

    private QTEvent qtEvent; 
    private CheckedTextView checkbox; 

    public MyListItem(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    protected void onFinishInflate() { 
     super.onFinishInflate(); 
     checkbox = (CheckedTextView)findViewById(android.R.id.text1); 
    } 

    public void setQTEvent(QTEvent q) { 
     this.qtEvent = q; 
     checkbox.setText(q.getName()); 
     checkbox.setChecked(q.isComplete()); 
    } 

    public QTEvent getEvent() { 
     return qtEvent; 
    } 

} 

답변

0

입니다. 이 오류는 어떤 파일과 라인이 발생하는지 알려줍니다.

사전 컴파일 된 클래스 및 기타 등등의 이전 버전을 제거하려면 Eclipse 프로젝트 -> 강제 치료 (Force Clean) 또는 ant clean을 명령 줄에서 수행해야 할 수도 있습니다.

+0

나는 당신이 옳은 길에 있다고 생각했던 문제가 무엇이 었는지, 어떤 문제가 해결되었는지 확신하지 못합니다. 나는 전에 "깨끗하게"하려했으나 효과가 없었습니다. 소스를 다른 머신에 복사하면 코드가 작동하고 코드가 적용된 새 프로젝트를 만들 수있었습니다. 감사 – JDM