Android: Как разыскать источник InflateException?

При запущении моего приложения я получаю соблюдающее предупреждение в Logcat:

04-09 10:28:17.830: WARN/WindowManager(52): Exception when adding starting window
04-09 10:28:17.830: WARN/WindowManager(52): android.view.InflateException: Binary XML file line #24: Error inflating class <unknown>
04-09 10:28:17.830: WARN/WindowManager(52):     at android.view.LayoutInflater.createView(LayoutInflater.java:513)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2153)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2207)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:1395)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.internal.policy.impl.PhoneWindowManager.addStartingWindow(PhoneWindowManager.java:818)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.server.WindowManagerService$H.handleMessage(WindowManagerService.java:8794)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.os.Looper.loop(Looper.java:123)
04-09 10:28:17.830: WARN/WindowManager(52):     at com.android.server.WindowManagerService$WMThread.run(WindowManagerService.java:531)
04-09 10:28:17.830: WARN/WindowManager(52): Caused by: java.lang.reflect.InvocationTargetException
04-09 10:28:17.830: WARN/WindowManager(52):     at android.widget.FrameLayout.<init>(FrameLayout.java:79)
04-09 10:28:17.830: WARN/WindowManager(52):     at java.lang.reflect.Constructor.constructNative(Native Method)
04-09 10:28:17.830: WARN/WindowManager(52):     at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.view.LayoutInflater.createView(LayoutInflater.java:500)
04-09 10:28:17.830: WARN/WindowManager(52):     ... 13 more
04-09 10:28:17.830: WARN/WindowManager(52): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x1010059 a=-1}
04-09 10:28:17.830: WARN/WindowManager(52):     at android.content.res.Resources.loadDrawable(Resources.java:1677)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
04-09 10:28:17.830: WARN/WindowManager(52):     at android.widget.FrameLayout.<init>(FrameLayout.java:91)
04-09 10:28:17.830: WARN/WindowManager(52):     ... 17 more

Мое Приложение запускается со следующего экрана-заставки:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:windowBackground="@color/white" android:background="@color/white"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:foregroundGravity="center">

    <ImageView android:id="@+id/ImageView01"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:adjustViewBounds="true" android:scaleType="centerInside"
        android:src="@drawable/splash" android:layout_gravity="center" />


</ScrollView>

Всплеск является изображением, которое показывают в экране-заставке. У меня есть те четыре папки с для хранения drawables в моем приложении:

/res/drawable-hdpi
/res/drawable-ldpi
/res/drawable-mdpi
/res/drawable-nodpi

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

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

Как Вы пошли бы о нахождении причины для этого предупреждения?

39
задан Janusz 2 February 2012 в 13:03
поделиться

3 ответа

У меня была точно такая же ошибка. Единственная строка xml 24, которая имела хоть какой-то смысл, - это манифест моего приложения, который оказался закрывающим тегом для приложения. Я проследил это до своей настраиваемой темы, которую добавлял для приложения - я не определял родительский элемент стиля. Все, что мне нужно было сделать, это добавить parent = "android: Theme" к моему стилю, и моя ошибка исчезла.

<style name="MyTheme" parent="android:Theme">
...
</style>
52
ответ дан 27 November 2019 в 02:44
поделиться
04-09 10:28:17.830: WARN/WindowManager(52): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x1010059 a=-1

Эта строка является раздачей. Системе не нравится один из ваших ресурсов, вероятно, ресурс src, возможно android: src = "@ drawable / splash" .

1
ответ дан 27 November 2019 в 02:44
поделиться

Ошибка находится в строке 24 вашего XML-файла. Что содержит эта строка? Судя по сообщению об ошибке

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

, вы используете собственный класс и что-то не определили должным образом. Например, правильно ли вы определили имя пакета? Может, его конструктор не отформатирован? Нам нужно будет увидеть XML-файл, в частности, то, что находится в строке 24, чтобы иметь возможность предоставить дополнительную информацию.

0
ответ дан 27 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: