android.просмотр.Исключение InflateException:Строка двоичного XML-файла # 12:Класс накачки ошибок <unknown>

StackOverflow https://stackoverflow.com/questions/4512981

Вопрос

Я получаю много ошибок подобного рода, отображаемых в subj.Эти ошибки кажутся случайными, и я не могу их воспроизвести.Из stack я могу узнать, что такая ошибка может возникать для моих различных ресурсов макета.Строка XML также меняется.

Кто-нибудь может объяснить, почему возникает эта ошибка?И что я могу сделать, чтобы исправить эту проблему?

Стек

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------

-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)

Вот результат XML, однако такая ошибка возникает в других XML-файлах

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
    </ViewFlipper>

    <LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
        <TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>

    </LinearLayout>

    <Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />

    <FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>               
    </FrameLayout>
</merge>
Это было полезно?

Решение

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

Таким образом, в основном убедитесь, что разрешение пикселей в ваших изображениях Drawables является лишь минимальным необходимым для вашего макета.

Другие советы

ViewFlipper Загружает все изображения в память во время раздувания макета. Поскольку мои изображения большие, это требует много памяти, я заменил ViewFlipper с ImageSwitcher который может изменить изображения с помощью анимации как ViewFlipper Но в то время он загружает только одно изображение.

Это также может произойти, если вы используете VectorDrawable Использование библиотеки поддержки и забыл использовать app:srcCompat вместо android:src

Точная ошибка: Бинарный файл XML #XX: ошибка надуваемого класса ImageView

Смотрите эту ссылку

Я знаю, что на вопрос уже отвечает, но все же я публикую мысль, что кто -то может столкнуться с этой проблемой.

В моем случае проблема заключается в том, что я загружаю свое приложение на телефон, который ссылается на макеты из Res/Mayout/Polder и значения для @Dimens из Res/Values/Dimens здесь, это FONT_22, к которому он пытается получить доступ, и он определяется в Res/Values-xlarge /размеры.

Я на самом деле обновляю пользовательский интерфейс существующего проекта.

Я столкнулся с этой проблемой, потому что я использую IDE Eclipse, где I Ctrl+Space для подсказка во время написания XML для папки макета отображает все значения из значений, а также папку Values-xlarge независимо от того, в какой папке я пишу.

Я также знаю, что значения в обоих файлах должны быть одинаковыми для отображения для разных экранов.

Надеюсь, это может помочь кому -то столкнуться с такой глупой проблемой.

У меня была такая же ошибка при создании пользовательского представления только с одним конструктором, попробуйте определить весь конструктор для ваших пользовательских представлений.

   public CustomWebView(Context context) {
        super(context);
        init();
    }

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

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

Я столкнулся с той же ошибкой и обнаружил, что корневая причина такова:

Используйте контекст приложения, чтобы раздуть представление.

Наполнение контекстом активности исправило ошибку.

У меня была эта ошибка, потому что я выбрал тему в качестве материала. Но когда я пытался запустить приложение на 4.4.2, это дало эту ошибку.

Решение: выберите Theme_holo в качестве темы

Размер моей картины составляет всего 14 КБ, но проблема в том, что дизайнер дал мне 1011px x 1819px (разрешение слишком высокое, что вызывает инфлюса)

На случай, если у кого-то возникнут подобные проблемы, у меня возникла такая проблема при раздувании представления:

View.inflate(getApplicationContext(), R.layout.my_layout, null)

исправлено путем замены getApplicationContext() с this

Эта ссылка может помочь вам. Попробуйте проверить свой манифест на проблемы. Если вы сможете привести его снова, опубликуйте весь свой трассировку стека, чтобы мы могли увидеть, что на самом деле такая ошибка.

РЕДАКТИРОВАТЬ: Я уверен, что вы проверили это, но что находится в строке 12 файла XML, который вы используете для макета турактивности?

Для меня сообщение об ошибке было на самом деле недостаточно в журнале, поэтому вот что я сделал, чтобы выяснить, что вызвало проблему:

(В сообщении об ошибке CAT в журнале сказано, что ошибка произошла при надувке определенной макету в моем homatfragment.java)

  1. Я положил точку останова непосредственно перед раздутым макетом
  2. Я запустил приложение в режиме отладки, пока оно не достигнет этой конкретной точки останова
  3. Я выбрал линию со своим курсором и побежал Evaluate expression в теме:
    • Run > Evaluate Expression или же alt - F8
  4. Результат показал мне больше информации об источнике проблемы, которая в моем случае была файлом, использующим с использованием tools:targetApi="lollipop" (Ошибка произошла только на старых устройствах).

Я знаю, что это вопрос ответа, но я не вижу причины, с которой я столкнулся.

Это было то, что Android Studio разместила мои рисунки в /drawable-v24, мой эмулятор-API 23. Так что в конечном итоге он не может его найти.

Решением было перенести все притягиваемые в /нарисованную папку (нет -24).

Вы должны скопировать файлы изображений из папки «Drawable-24» в папку "Drawable".

У меня была такая же ошибка, и я решил перемещать свои притягиваемые из папки, протягиваемой MDPI, в папку. У меня потребовалось некоторое время, чтобы понять, потому что в Eclipse все работало отлично, пока в Android Studio я получил эти уродливые ошибки времени выполнения.

РЕДАКТИРОВАТЬ ПРИМЕЧАНИЕ: Если вы мигрируете из Eclipse в Android Studio, и ваш проект поступает от Eclipse, это может произойти, поэтому будьте осторожны, что в Android Studio все немного отличается от Eclipse.

В моем случае эта ошибка возникает, когда я использую Кнопка плавающего действия и сет android:backgroundTint="#000". Анкет Тогда просто не устанавливайтесь backgroundTint и проблема решена. Надеюсь, это вам полезно.

У меня была эта проблема только сейчас, и мне удалось выяснить, что это было. Ссылался на цвет в моих ценностях, которые вызывали проблемы. Таким образом, определил его вручную вместо того, чтобы использовать один из раскрывающихся предложений. Затем это сработало!

У меня была такая же ошибка, когда я запустил свое приложение на API Lvl 16 (26 было в порядке). Это потому, что я использовал ?attrr/colorAccent В моей форме притягивается:

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

    <corners android:radius="8dp" />

    <solid android:color="@attr/colorAccent" />

</shape>

Заменить это обычным цветом исправила мою проблему.

У меня была такая же проблема, и она решила, удалив Drawable-V24 с (24) перед изображениями в папке Draitable и заменив их обычными притяжениями.

Я знаю, что эта тема старая, но все еще отвечает на нее, чтобы никто другой не должен провести бессонные ночи.

Я рефакторировал старый проект, чьи файлы макета содержали твердые атрибуты, такие как android:maxLength = 500. Анкет Поэтому я решил зарегистрировать его в моемres/dimen файл как <dimen name="max_length">500</dimen>.

Закончил рефакторинг почти 30 файлов макета с моей Res-Value. Угадай, что? В следующий раз, когда я запустил свой проект, он начал бросать то же самое InflateException.

В качестве решения, необходимого для повторного изменения всех моих изменений и сохранить все эти значения так же, как и раньше.

TLDR;

Шаг 1: все бегут хорошо.

Шаг 2: Чтобы повысить мое обслуживание, я заменил android:maxLength = 500 с <dimen name="max_length">500</dimen> а также android:maxLength = @dimen/max_length , вот где все пошло не так (сбой с InflateException).

Шаг 3: все бегут плохо

Шаг 4: Заменить всю мою работу, снова заменив android:maxLength = @dimen/max_length с android:maxLength = 500. Все были исправлены.

Шаг 5: Все работают хорошо.

Я нашел ту же ошибку, и потребовалось два дня, чтобы определить, какова была ошибка.

Ошибка была просто потому, что я пытался использовать один: android:background

Скорее, чем: app:srcCompat

в файле SVG.

В вашем случае, я считаю, что это все

<ImageView 
    android:scaleType="fitXY" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/tour_11"      <-- the error is here !
 />

Я рекомендую использовать это таким образом

<androidx.appcompat.widget.AppCompatImageView  <-- use **AppCompatImageView** not **ImageView**
        android:scaleType="fitXY" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:srcCompat="@drawable/tour_11"
     />

Надеюсь, это поможет.

Я также столкнулся с аналогичной проблемой. В то время как для всех это может быть проблемой различных плохих использования в коде, таком как

  1. Неверная метка макета в XML
  2. Загрузка тяжелого ресурса непосредственно в ImageView, что приводит к Ом
  3. Проблемы с использованием стилей.

Одним из наиболее игнорируемых факторов может быть Использование правильного контекста придувая взгляды. Пожалуйста, проверьте, что вы не используете ApplicationContext где требуется контекст деятельности. Пока, ApplicationContext Не может быть в конечном итоге в ошибке, но в зависимости от иерархии вашего взгляда это может иметь решающее значение.

Я решил свою проблему с плохим контекстом (используя ApplicationContext вместо Мероприятия В течение 4 дней! Так что попробуйте, если это решает. Счастливого кодирования !!

Я столкнулся с той же проблемой, я использовал тег View в XML вместо представления. Замена для просмотра класса исправила проблему.

Надеюсь, это тоже поможет вам ..

Нам нужно проверить версию API. Раньше я давал цвет фона своему LinearLayout как

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/as_royalblue"
        android:orientation="vertical"></LinearLayout>

наверняка у меня была та же ошибка, as_royalblue.xml внутри drawable папка

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:endColor="@color/royalblue_s"
        android:startColor="@color/royalblue_e" />
</shape>

И как я это исправил, На самом деле это кажется проблемой API, поэтому нам нужно проверить уровень API, если он выше API 24, поэтому мы можем использовать способ, которым нам нравится. Но если это меньше 24, мы должны избегать использования, джонки дают нормальный цвет или один цвет, а не смешанный графический цвет.

fun checkAPI_N(): Boolean {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N)
            return true
        else
            return false
    }

Дайте идентификатор своим Linearlayouts и установите фон, если все в порядке

 if(UtilKotlin.checkAPI_N()){
            linlay_act_menu_container.setBackgroundResource(R.drawable.a_6)
            linlay_act_menu_logo.setBackgroundResource(R.drawable.as_strain)
        }else {//todo normal color background setting}

В моем случае я указал полное имя пакета компонента пользовательского интерфейса библиотеки, которое я использую в своем файле макета.

Для меня это произошло, потому что я попытался смешать XML -векторные графические изображения с обычным PNG в том же файле макета,

Только после того, как я заменил XML -векторную графику на PNGS, она начала работать

  • Я только что решаю эту проблему, просто удалите ваши изображения из Drawable (V24) и просто вставьте его в папку Drawable, это работает для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top