سؤال

أثناء بدء تشغيل طلبي ، أحصل على التحذير التالي في 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

يبدأ طلبي بشاشة Splash التالية:

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

Splash هي الصورة التي تظهر في شاشة Splash. لدي تلك المجلدات الأربعة لتخزين القواطع في تطبيقي:

/الدقة/Drawable-HDPI
/الدقة/draw-ldpi
/الدقة/Drawable-MDPI
/الدقة/السحب nodpi

تحتوي صورة Splash على نسختها الخاصة في الثلاثة الأولى منها ويتم عرضها بشكل صحيح. إزالة خاصية SRC من ImageView يزيل الصورة ولكن ليس الاستثناء.

أنا ضائع قليلاً مع مكان البحث عن سبب الاستثناء. حتى أنني لا أعرف ما إذا كانت هذه مشكلة حقًا في ملف التخطيط هذا وما إلى ذلك.

كيف يمكنك العثور على سبب هذا التحذير؟

هل كانت مفيدة؟

المحلول

كان لدي نفس الخطأ الدقيق. كان سطر XML الوحيد 24 الذي كان له أي معنى هو واضح لتطبيقي الذي حدث ليكون علامة الإغلاق للتطبيق. لقد تتبعها إلى موضوعي المخصص الذي كنت أضيفه للتطبيق - لم أكن أحدد الوالد من النمط. كل ما احتاجه هو إضافة Parent = "Android: Theme" لأسلوبي وذهب خطأي.

<style name="MyTheme" parent="android:Theme">
...
</style>

نصائح أخرى

واجهت نفس المشكلة ، وكان ذلك لأنني مررت سياق التطبيق بدلاً من سياق النشاط.

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".

حصلت على خطأ مماثل عند التشغيل على محاكي 2.0. لقد استخدمت إصدارًا جديدًا من API (الإصدار 7 ، 2.1-update1) وقد نجح.

الخطأ هو على السطر 24 من ملف XML الخاص بك. ماذا يحتوي هذا الخط؟ بمظهر رسالة الخطأ

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

أنت تستخدم فئة مخصصة ولم تحدد شيئًا بشكل صحيح. على سبيل المثال ، هل حددت اسم الحزمة بشكل صحيح؟ ربما لم يتم تنسيق مُنشئه؟ يجب أن نرى ملف XML ، وتحديداً ما هو حول السطر 24 ، لنكون قادرين على تقديم المزيد من المعلومات.

أعلم أن هذا متأخر بعض الشيء لكنني قضيت طوال اليوم في محاولة لمعرفة هذا الأمر وأخيراً بمساعدة هذه لذا ، أدركت أن ملف XML في المثال الذي كنت أحاوله هو استخدام ميزة من واجهة برمجة التطبيقات اللاحقة ولم يكن Lint يصطاده لأن الملف لم يتغير. بمجرد أن قمت بتحرير عشوائي على ملف XML وحفظ الملف ثم ظهر الخطأ حول واجهة برمجة التطبيقات اللاحقة.

بعد الكثير من الأبحاث المحمومة حول إيجاد الإجابة التي تتحطم فيها التطبيق ولماذا لا يظهر logcat

لقد استبدلت هذا للتو

android:configChanges="orientation|keyboardHidden"

ل

android:configChanges="keyboardHidden|orientation|screenSize"

في علامة النشاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top