0

我有一个可以在我们测试过的大多数设备上运行的应用程序,但是在少数 20 个 beta 用户中,其中 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>

XML 上的第 52 行ListView位于底部。会发生什么?

我真的不知道如何解决这个错误。

编辑:

阅读链接后,我仍然不知道,但这个堆栈跟踪可能会有所帮助:

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

困扰我的是几乎所有代码都是“内部的”而不是我的......

4

3 回答 3

2

看看这个:InvocationTargetException on inflating an x​​ml - android

于 2011-10-17T12:21:00.617 回答
0

查了原因后才发现问题所在。

基本上我在 a 中膨胀了一个视图,AsyncTask但在doInBackground()方法上这样做了,这显然适用于大多数设备,但不是所有设备。

我将充气部分移到了onPostExecute(),它解决了问题。

于 2011-10-17T13:17:21.673 回答
0

要修复错误:

在清单中:

<application
        android:largeHeap="true"

在 .xml 文件中,您必须删除以下代码:

android:src="@drawable..
android:background="@drawable...

因为错误是内存不足错误。这对我有好处

于 2015-05-29T12:09:40.093 回答