андроид.вид.InflateException: Binary XML file line #12: ошибка завышения класса



Я получаю много ошибок рода, отображаемых в subj. Эти ошибки кажутся случайными, и я не могу их воспроизвести. Из стека я могу узнать, что такая ошибка может произойти для моих различных ресурсов макета. Строка 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.access00(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.access00(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, однако такая ошибка возникает в других xmls



<?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>
871   19  

19 ответов:

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

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

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

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

точная ошибка: строка двоичного XML-файла #XX: ошибка завышения класса ImageView

см. ссылку

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

в моем случае проблема заключается в том, что я загружаю свое приложение на телефон, который ссылается на макеты из res/layout/ folder и значения для @dimens из res/values/dimens здесь это font_22, к которому он пытается получить доступ, и он определяется в res/values-xlarge/dimens.

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

Я столкнулся с этой проблемой поскольку я использую IDE Eclipse, где я ctrl + space для подсказки при написании xml для папки макета, он отображает все значения из значений, а также папку values-xlarge независимо от того, для какой папки я пишу.

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

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

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

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

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

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

EDIT: я уверен, что вы проверили это, но что находится в строке 12 XML-файла, который вы используете для макета TourActivity?

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

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

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

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

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

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

(в сообщении об ошибке журнала cat он сказал, что ошибка произошла при раздувании определенного макета в моем домашнем фрагменте.java)

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

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

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

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

У меня была та же ошибка, и я решил переместить мои чертежи из папки drawable-mdpi в папку drawable. Мне потребовалось некоторое время, чтобы понять, потому что в Eclipse все работало отлично, а в Android Studio я получил эти уродливые ошибки во время выполнения.

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

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

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

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

ошибка была просто потому, что я пытался использовать один: 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 !
 />

Я надеюсь, что это помогает.

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

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

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

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

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

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

нам нужно проверить версию 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
    }

дайте id для вашего 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}

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

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

решение состояло в том, чтобы переместить все чертежи в папку /drawable (no -24).

Comments

    Ничего не найдено.