Почему QuickContactBadge создает исключение android.view.InflateException?

Я создаю приложение, которое делает фильтрацию контактов, но, к сожалению android.view.InflateExceptionвыбрасывается во время запуска фрагмента со списком контактов, который использует тяжелые QuickContactBadge просмотр для одного контакта.

Есть похожая проблема : ошибка раздувания в представлении фрагмента: ресурс не предназначен для SO с несколькими возможными решениями. Однако они не дают никаких разъяснений по этому вопросу. Есть все еще ошибка инфляции времени выполнения с любым из предложенных решений. Конкретный случай, пожалуйста, проверьте ниже.

Ошибка выполнения Android от Logcat:

android.view.InflateException: Binary XML file line #5: Error inflating class android.widget.QuickContactBadge
    at android.view.LayoutInflater.createView(LayoutInflater.java:626)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
    at com.contactexctractor.ContactFragment$ContactsAdapter.newView(ContactFragment.java:127)
    ...

Фрагмент кода инфляции QuickContactBadge:

public class ContactFragment extends Fragment implements EventSubscriber, LoaderManager.LoaderCallbacks<Cursor>
{
    ...

    private class ContactsAdapter extends CursorAdapter implements SectionIndexer   {
        private LayoutInflater mInflater; 

        /**
         * Instantiates a new Contacts Adapter.
         * @param context A context that has access to the app's layout.
         */
        public ContactsAdapter(Context context) {
            super(context, null, 0);

            // Stores inflater for use later
            mInflater = LayoutInflater.from(context);

            ...
        }

        /**
         * Overrides newView() to inflate the list item views.
         */
        @Override
        public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
            // Inflates the contact list item layout.
            final View itemLayout = mInflater.inflate(R.layout.contacts_item, viewGroup, false);

            ...
        }

        ...
    }

    ...
}

XML макета элемента контакта:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight" >

    <QuickContactBadge
        android:id="@android:id/contact_icon"
        android:layout_width="?android:attr/listPreferredItemHeight"
        android:layout_height="?android:attr/listPreferredItemHeight"
        android:src="@drawable/ic_contact_picture_holo_light" />

    <TextView
        android:id="@android:id/contact_bio"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@android:id/contact_icon" />

</RelativeLayout>

0 ответов

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