3

わかりました、それは奇妙です。

アクティビティの 1 つでこのエラーを受け取りました。奇妙なことは、すべてのアクティビティでビットマップが使用されていることです! 私は例外を再現する方法さえ知りません。

これはスタックトレース全体です:

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

「不足している」リソースはこれです(ドローアブルフォルダー内):

<?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-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 や、他のユーザーが遭遇した他の問題はありません。

これについて何か助けはありますか?私は何が欠けていますか?ありがとう

4

3 に答える 3

7

最後に、私は最終的に解決策を見つけました。別のエミュレーターで試してみましたが、このクラッシュは API 10 (2.3.3) 以下でのみ発生していました。xml を調べて、別のことをしようとしています (また、bg ドローアブルをどこにでもコピーするか、id をリストに変更します)、カスタム テーマでこの奇妙なものを見つけました:

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

これは、新しい Android バージョンでは問題ではないようですが、古いバージョンでは問題ありません。

colorBackground の定義を削除するだけです (これはおそらく色のみである必要があります)。

これが他の誰かに役立つことを願っています!

于 2013-01-25T00:20:53.303 に答える
0

セレクターをres/drawableフォルダーに入れ、ListviewIDをとして指定しandroid:id="@+android:id/list"ます。

お役に立てば幸いです。

ありがとう。

于 2013-01-24T10:31:34.920 に答える
0

resフォルダー内にdrawableフォルダーを作成します。bgを"res/drawable/"内に保持してみてください。

これがあなたを助けることを願っています。

于 2013-01-24T10:24:34.917 に答える