Android在XML ClassNotFound错误中膨胀自定义视图

时间:2013-03-16 16:18:44

标签: android android-layout android-preferences android-xml dialog-preference

我的XML代码存在一些问题,希望你能帮助我。

我在这个包中有这个类:

package com.example.myview

public class CustomDialog extends DialogPreference {

    public CustomDialog(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public CustomDialog(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }
}

然后我有这个首选项xml文件:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <com.example.myview.CustomDialog
        android:dialogMessage="Are you sure you wish delete you account"
        android:key="deleteAccountPreference"
        android:negativeButtonText="Cancel"
        android:positiveButtonText="Okay"
        android:summary="@string/preferences_deleteaccount_summary"
        android:title="@string/preferences_deleteaccount_title" />

</PreferenceScreen>

当我运行代码时,我收到此错误:

03-16 17:03:18.032: E/AndroidRuntime(20224): android.view.InflateException: Binary XML file line #4: Error inflating class com.example.myview.CustomDialog
...
03-16 17:03:18.032: E/AndroidRuntime(20224): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.myview.CustomDialog" on path: .

总结一下我的问题,我想知道如何更改xml文件正在查看的路径,或者弄清楚为什么它不能给我的自定义视图充气。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我遇到了与您上面提到的问题基本相同的问题。我假设您尝试在图形布局和xml视图之间来回切换您的首选项xml文件,对吗? 这是我通过初始化问题的廉价方式(应该类似于ClassNotFoundException问题):

  1. 复制xml中类似引用的现有类(在xml中也有类似com。 .ClassName ...的东西,并将'ClassName'重命名为CustomDialog(在您的特定中)情况下)
  2. 执行此操作后,我仍然遇到“未找到课程”错误 - 我只是重建了整个项目并且此错误消失了。我新创建的小部件在图形布局中相应地呈现。
  3. 我还没有看到你是否遇到了你所犯的膨胀错误,但我希望我的答案仍然有所帮助。对不起,如果没有,这实际上是我在stackoverflow上的第一篇文章,而且当涉及到Android时,我肯定是n00b。我也一边学习:)