У меня есть приложение, которое работает на большинстве протестированных нами устройств, но из немногих 20 бета-пользователей 2 из них получают очень странную ошибку:
10-17 08:56:56.840 24805 24846 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #52: Error inflating class <unknown>
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.createView(LayoutInflater.java:513)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at com.nzn.baixaki.AppsActivity$LoadCategoriesTask.doInBackground(AppsActivity.java:71)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at com.nzn.baixaki.AppsActivity$LoadCategoriesTask.doInBackground(AppsActivity.java:1)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: ... 4 more
10-17 08:56:56.840 24805 24846 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.widget.ListView.<init>(ListView.java:153)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at java.lang.reflect.Constructor.constructNative(Native Method)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: at android.view.LayoutInflater.createView(LayoutInflater.java:500)
10-17 08:56:56.840 24805 24846 E AndroidRuntime: ... 14 more
А вот и XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- LINHA AZUL // -->
<LinearLayout
android:background="@drawable/bg_filters"
android:id="@+id/category_header"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<!-- LINHA DE CIMA // -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:paddingRight="10dip"
android:paddingLeft="10dip"
android:paddingTop="10dip">
<!-- LABEL 'CATEGORIA' -->
<TextView
android:gravity="center_vertical"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:textColor="@color/bxkBlue"
android:text="@string/category_title_call"
android:textSize="14dip"
android:layout_marginRight="5dip">
</TextView>
<!-- NOME DA CATEGORIA -->
<TextView
android:gravity="center_vertical"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:textColor="@color/bxkBlue"
android:text="Nome da categoria"
android:textSize="14dip"
android:textStyle="bold"
android:id="@+id/category_name">
</TextView>
</LinearLayout>
<View
android:layout_height="1dip"
android:layout_width="fill_parent"
android:background="#e5e5e5"/>
</LinearLayout>
<ListView
android:listSelector="@drawable/bg_list_selector"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/apps_list_view"></ListView>
</LinearLayout>
Строка 52 в XML - это ListView
внизу. Что может происходить?
Я действительно понятия не имею, как исправить эту ошибку.
EDIT:
После прочтения ссылки у меня все еще нет представления, но эта трассировка стека может помочь:
10-17 09:28:48.919 25897 25983 W System.err: Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
10-17 09:28:48.929 25897 25983 W System.err: at android.os.Handler.<init>(Handler.java:121)
10-17 09:28:48.929 25897 25983 W System.err: at android.view.GestureDetector$GestureHandler.<init>(GestureDetector.java:250)
10-17 09:28:48.929 25897 25983 W System.err: at android.view.GestureDetector.<init>(GestureDetector.java:370)
10-17 09:28:48.929 25897 25983 W System.err: at android.view.GestureDetector.<init>(GestureDetector.java:347)
10-17 09:28:48.929 25897 25983 W System.err: at android.view.GestureDetector.<init>(GestureDetector.java:331)
10-17 09:28:48.929 25897 25983 W System.err: at android.widget.AbsListView.initAbsListView(AbsListView.java:585)
10-17 09:28:48.929 25897 25983 W System.err: at android.widget.AbsListView.<init>(AbsListView.java:544)
10-17 09:28:48.929 25897 25983 W System.err: at android.widget.ListView.<init>(ListView.java:157)
10-17 09:28:48.929 25897 25983 W System.err: ... 18 more
Что меня беспокоит, так это то, что почти весь код "внутренний", а не мой ...