【问题标题】:Android InflateException on refactor of classAndroid InflateException 对类的重构
【发布时间】:2010-04-23 04:12:25
【问题描述】:

我有一个简单的应用程序,它有一个视图和一个应该返回 ListView 的类。除非我重构,否则应用程序可以工作,而且我重构的不仅仅是重命名类的名称。一切似乎都得到了正确的改变,但应用程序抛出了一个异常: android.view.InflateException: Binary XML file line #2: Error inflating class

如果我重构回原来的名字,一切都很好。我缺少什么没有被重命名?

代码是

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;
    }

}

【问题讨论】:

    标签: android view inflate


    【解决方案1】:

    似乎某些布局 XML 仍在引用旧名称。该错误会告诉您这是发生在哪个文件和行上。

    您可能还需要执行 Eclipse 项目 -> 强制清理,或从命令行执行ant clean,以摆脱早期版本的预编译类等等。

    【讨论】:

    • 我不确定发生了什么或什么解决了问题,我认为您的思路是正确的。我之前曾尝试“清洁”,但没有奏效。将源代码复制到另一台机器允许代码工作并使用代码创建一个新项目也可以工作。谢谢
    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多