Я получаю много ошибок, отображаемых в 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.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, однако такая ошибка возникает в других 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>
android
xml
resources
android-inflate
Solvek
источник
источник
Ответы:
Исключение inflate на самом деле не является проблемой, но на самом деле возникает из-за более глубокой проблемы в макете, которая затем включается в InflateException. Распространенной проблемой является исключение нехватки памяти при попытке надувать изображение, загружая извлекаемый ресурс. Если один из этих ресурсов имеет высокое разрешение в пикселях, потребуется много памяти, что приведет к исключению раздувания.
Поэтому в основном убедитесь, что разрешение в пикселях на ваших рисованных изображениях - это минимум, необходимый для вашего макета.
источник
ViewFlipper
загружает все изображения в память во время раздувания макета. Потому что мои изображения большое это занимает много памяти, я заменилViewFlipper
сImageSwitcher
которой можно изменить изображения с анимацией , как ,ViewFlipper
но он загружает только один файл в то время.источник
Это также может произойти, если вы
VectorDrawable
используете библиотеку поддержки using и забыли использоватьapp:srcCompat
вместоandroid:src
Точная ошибка: строка двоичного XML-файла #XX: ошибка надувания класса ImageView
Смотрите эту ссылку
источник
У меня была такая же ошибка при создании пользовательского представления только с одним конструктором, попробуйте определить все конструктор для ваших пользовательских представлений.
источник
Я знаю, что на вопрос уже дан ответ, но все же я пишу с мыслью, что кто-то может столкнуться с такой проблемой.
В моем случае проблема в том, что я загружаю свое приложение в телефон, который ссылается на макеты из res / layout / folder и значения для @dimens из res / values / Dimensions, здесь это font_22, к которому он пытается получить доступ, и он определен в res / values-xlarge. / Dimens.
Я на самом деле обновляю пользовательский интерфейс существующего проекта.
Я столкнулся с этой проблемой, потому что я использую IDE Eclipse, где я использую Ctrl + пробел для подсказки при написании XML для папки макета, он отображает все значения из значений, а также папку values-xlarge независимо от того, для какой папки я пишу.
Я также знаю, что значения в обоих файлах должны быть одинаковыми для сопоставления для разных экранов.
Надеюсь, что это может помочь кому-то столкнуться с такой глупой проблемой.
источник
Я столкнулся с той же ошибкой и нашел причину:
Используйте контекст приложения, чтобы раздуть представление.
Раздувание с помощью Activity Context исправило ошибку.
источник
Размер моего изображения составляет всего 14 КБ, но проблема в том, что дизайнер дал мне 1011px x 1819px (слишком высокое разрешение, поэтому возникает исключение InflateException)
источник
В случае, если у кого-то возникают подобные проблемы, у меня была такая проблема, когда я раздувал представление:
View.inflate(getApplicationContext(), R.layout.my_layout, null)
исправлено путем замены
getApplicationContext()
наthis
источник
У меня была эта ошибка, потому что я выбрал тему в качестве темы материала. Но, поскольку я пытался запустить приложение на 4.4.2, оно выдало эту ошибку.
Решение: выберите Theme_holo в качестве темы
источник
4.2.2
. Но где я могу перейти от Материальной темы к Theme_holo? Я не вижу ключевое слово Материал в моемstyles.xml
илиv21/styles.xml
. Смотрите мой вопрос: stackoverflow.com/questions/37883677/…Эта ссылка может вам помочь. Попробуйте проверить в своем манифесте проблемы. Если вы можете повторить это, опубликуйте всю трассировку стека, чтобы мы могли увидеть, в чем на самом деле ошибка.
РЕДАКТИРОВАТЬ: Я уверен, что вы это проверили, но что в строке 12 файла XML вы используете для макета TourActivity?
источник
Для меня сообщения об ошибке на самом деле было недостаточно в журнале cat, поэтому вот что я сделал, чтобы выяснить, что вызвало проблему:
(В сообщении об ошибке журнала cat говорится, что ошибка произошла при накачке определенного макета в моем HomeFragment.java)
Evaluate expression
по ней:Run > Evaluate Expression
илиalt - F8
tools:targetApi="lollipop"
(ошибка возникала только на старых устройствах).источник
Я обнаружил ту же ошибку, и потребовалось два дня, чтобы определить, что это за ошибка.
Ошибка была просто потому, что я пытался использовать:
android:background
Скорее, чем:
app:srcCompat
в файле SVG.
В твоем случае я верю что это оно
Я рекомендую использовать это таким образом
добавьте это в ваше приложение build.gradle
и
Надеюсь, это поможет.
источник
Я знаю, что это ответ на вопрос, но я не вижу причины, с которой я столкнулся.
Дело в том, что Android Studio поместила мои drawables в / drawable-V24. Мой эмулятор - API 23. Так что, в конце концов, он не может его найти.
Решением было переместить все элементы рисования в папку / drawable (без -24).
источник
Вы должны скопировать файлы изображений из папки drawable-24 в папку drawable.
источник
У меня была та же ошибка, и я решил переместить мои файлы рисования из папки drawable-mdpi в папку drawable. Мне потребовалось некоторое время, чтобы понять, потому что в Eclipse все работало идеально, в то время как в Android Studio я получал эти ужасные ошибки времени выполнения.
Примечание: если вы переходите с затмения на Android Studio и ваш проект исходит из затмения, это может произойти, поэтому будьте осторожны, так как в Android Studio все немного отличается от затмения.
источник
В моем случае эта ошибка возникает, когда я использую кнопку действия Floating и устанавливаю
android:backgroundTint="#000"
. Тогда просто не ставьтеbackgroundTint
и проблема решена. Надеюсь, это полезно для вас.источник
app:backgroundTint
вместоandroid:backgroundTint
.Для меня моей проблемой было то, что я был
На фоне LinearLayout, как только я удалил его, тест прошел.
источник
У меня была эта проблема только сейчас, и мне удалось выяснить, что это было. Ссылался на цвет в моих ценностях, который вызывал проблемы. Так что определили его вручную, вместо того, чтобы использовать одно из выпадающих предложений. Затем это сработало!
источник
У меня была та же ошибка, когда я запустил свое приложение по API lvl 16 (26 было в порядке). Это потому, что я использовал
?attrr/colorAccent
в своей форме:Замена на обычный цвет исправила мою проблему.
источник
У меня была та же проблема, и она была решена путем удаления drawable-v24 с (24) перед изображениями в папке drawable и заменой их на обычные drawables.
источник
Я знаю, что эта ветка старая, но все же отвечаю, чтобы никто другой не провел бессонные ночи.
Я проводил рефакторинг старого проекта, чьи файлы макетов содержали жестко закодированные атрибуты, такие как
android:maxLength = 500
. Поэтому я решил зарегистрировать его в моемres/dimen
файле как<dimen name="max_length">500</dimen>
.Закончен рефакторинг почти 30 файлов макетов с моим res-значением. Угадай, что? в следующий раз, когда я запустил свой проект, он начал бросать то же самое
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: Все работает хорошо.
источник
Решил это, переместив все мои нарисованные элементы из drawable-v24 в drawable
источник
Я также столкнулся с подобной проблемой. В то время как для кого-либо это может быть проблемой различных плохих способов использования в Кодексе, таких как
Одним из наиболее игнорируемых факторов может быть использование правильного контекста при накачивании представлений. Пожалуйста, убедитесь, что вы не используете ApplicationContext, где требуется контекст Activity. Пока, ApplicationContext может не всегда заканчиваться ошибкой, но в зависимости от вашей иерархии представлений это может иметь решающее значение.
Я решил свою проблему с BAD-контекстом (используя ApplicationContext вместо Activity в течение 4 дней! Поэтому попробуйте, если это решится. Счастливого кодирования !!
источник
Я столкнулся с той же проблемой, я использовал вид тега в XML вместо View. Замена на класс View устранила проблему.
Надеюсь, это поможет вам тоже ..
источник
Нам нужно проверить версию API. Я использовал, чтобы придать цвет фона моему
LinearLayout
лайкунаверняка у меня была такая же ошибка,
as_royalblue.xml
внутриdrawable
папкии как я это исправил , на самом деле кажется, что проблема Api, поэтому нам нужно проверить уровень API, если он выше API 24, чтобы мы могли использовать то, что нам нравится. Но если он меньше 24, мы должны избегать использования, выступы дают нормальный цвет или один цвет, а не смешанный градиент цвета.
дать идентификатор вашим линейным макетам и установить фоны, если все в порядке
источник
В моем случае я должен указать полное имя пакета компонента библиотеки UI, которое я использую в своем файле макета.
источник
Для меня это произошло потому, что я пытался смешать векторные изображения в формате xml с обычным png в одном файле макета,
только после того как я заменил векторную графику xml на pngs она начала работать
источник
Я просто решил эту проблему, просто удалите ваши изображения из Drawable (v24) и просто вставьте его в папку Drawable, это работает для меня.
источник
У меня была та же ошибка
Crashlytics
со странного устройства: Motorola One Vision Android 5.1 и 20 ГБ (свободной) оперативной памяти, рутированные Это устройство изначально поставляется с Android 9.0, 4 ГБ оперативной памятиВозможно, кто-то пытается взломать приложение, которое я сейчас разрабатываю, и у него проблемы с мульти-APK. Таким образом, ничья не может быть найдена, и приложение доставляет сбой
источник