“无效的可绘制标记位图”的org.xmlpull.v1.XmlPullParserException

时间:2013-01-24 10:04:00

标签: android

好的,这很奇怪。

我的一个活动收到了这个错误,奇怪的是每个Activity都使用了位图!我甚至不知道如何重现异常,它对我(以及我认为的其他人)都很好。

这是整个堆栈跟踪:

java.lang.RuntimeException: Unable to start activity ComponentInfo{it.enrichman.bolloauto/it.enrichman.bolloauto.activities.ArchivioActivity}: android.view.InflateException: Binary XML file line #15: Error inflating class android.widget.ListView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4385)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class android.widget.ListView
at android.view.LayoutInflater.createView(LayoutInflater.java:518)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:250)
at android.app.Activity.setContentView(Activity.java:1742)
at it.enrichman.bolloauto.activities.ArchivioActivity.onCreate(ArchivioActivity.java:36)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
at android.view.LayoutInflater.createView(LayoutInflater.java:505)
... 22 more
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/backrepeat.xml from color state list resource ID #0x7f020075
at android.content.res.Resources.loadColorStateList(Resources.java:1855)
at android.content.res.TypedArray.getColor(TypedArray.java:319)
at android.widget.AbsListView.<init>(AbsListView.java:632)
at android.widget.ListView.<init>(ListView.java:164)
at android.widget.ListView.<init>(ListView.java:160)
... 25 more
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag bitmap
at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:146)
at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
at android.content.res.Resources.loadColorStateList(Resources.java:1852)
... 29 more

“缺失”资源就是这个(在drawable文件夹中):

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/bg"
        android:tileMode="repeat" />

“bg”drawable在drawable-hdpi里面(可能是个问题吗?),但正如我所说,它在每个活动中用作背景!

在布局设置期间调用错误:

setContentView(R.layout.archivio);

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

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="BLABLABLA"
            android:id="@+id/archivioTextView" android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal" android:textIsSelectable="false" android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp" android:layout_marginRight="30dp" android:layout_marginLeft="30dp"/>
    <ListView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/listaVeicoli" android:layout_gravity="center" android:drawSelectorOnTop="false"/>
</LinearLayout>

(一些无用的陈述是由IntelliJ的设计师提出的!)

我已经找到了类似的问题,但我没有像@ + id / list这样的“奇怪”ID或者其他用户遇到的其他问题..

对此有何帮助?我错过了什么? 感谢

3 个答案:

答案 0 :(得分:6)

最后我发现了最终的解决方案。 我尝试过使用不同的模拟器,而且我只在API 10(2.3.3)或更低版本中遇到此崩溃。环顾xmls并尝试做不同的东西(也复制bg drawable到处,或将id更改为我的列表)我在我的自定义主题中找到了这个奇怪的东西:

<item name="android:windowBackground">@drawable/backrepeat</item>
<item name="android:colorBackground">@drawable/backrepeat</item>

对于较新的Android版本,这似乎不是问题,但对于较旧的版本,这似乎不是问题。

只需删除colorBackground定义(也许应该只是一种颜色),就是这样!

我希望这能帮助别人!

答案 1 :(得分:0)

res 文件夹中创建可绘制文件夹。 尝试将 bg 保留在“res / drawable /”中。

希望这会对你有所帮助。

答案 2 :(得分:0)

将您的选择器放入res/drawable文件夹,并将Listview ID设为android:id="@+android:id/list"

我希望它会帮助你。

感谢。