Android раздувает пользовательское представление в XML Ошибка ClassNotFound

У меня есть некоторые проблемы с моим 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 ответ

Я столкнулся, по сути, с той же проблемой, о которой ты упоминал выше. Я предполагаю, что вы пытались переключаться между графическим макетом и представлениями XML для вашего предпочтительного XML-файла, верно? Вот мой дешевый способ обойти мою проблему инициализации (которая должна быть похожа на вашу проблему ClassNotFoundException):

  1. Скопируйте существующий класс, на который есть аналогичные ссылки в xml (он также имеет что-то вроде com..ClassName... в xml, и переименуйте "ClassName" в CustomDialog (в вашем конкретном случае)
  2. После этого я все еще получил ошибку "класс не найден" - я просто перестроил весь свой проект, и эта ошибка исчезла. Мой недавно созданный виджет отображается соответствующим образом в графическом макете.

Я еще не выяснил, столкнусь ли я с раздувающими ошибками, которые вы сделали, но я надеюсь, что мой ответ все еще поможет Извините, если это не так, на самом деле это мой первый пост на stackru, и я по общему признанию n00b, когда дело доходит до Android. Учусь так же как и я:)

Другие вопросы по тегам