为什么我的应用尝试使用drawable-mdpi/title_bar_shadow.9.png?

Oll*_*e C 5 android android-layout

该应用程序在HPDI和MDPI上运行良好,但是当在LDPI(v2.0)模拟器中运行时,我得到下面的异常和堆栈跟踪.

为什么要寻找这张图片?(它在我的应用程序中未引用,我已经检查过).在任何情况下,启动器活动都禁用了标题栏.

如果操作系统需要此图像,为什么它不存在?

当仿真器是LDPI时,为什么与MPDI映像有关的异常?

04-20 11:35:19.432: ERROR/AndroidRuntime(236): Uncaught handler: thread main exiting due to uncaught exception
04-20 11:35:19.502: ERROR/AndroidRuntime(236): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.spondle/com.spondle.EventsActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class <unknown>
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2454)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)
        at android.app.ActivityThread.access$2200(ActivityThread.java:119)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:123)
        at android.app.ActivityThread.main(ActivityThread.java:4310)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:521)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class <unknown>
        at android.view.LayoutInflater.createView(LayoutInflater.java:513)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
        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:198)
        at android.app.Activity.setContentView(Activity.java:1622)
        at com.spondle.EventsActivity.onCreate(EventsActivity.java:38)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
        ... 11 more
        Caused by: java.lang.reflect.InvocationTargetException
        at android.widget.ImageView.<init>(ImageView.java:105)
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
        at android.view.LayoutInflater.createView(LayoutInflater.java:500)
        ... 23 more
        Caused by: android.content.res.Resources$NotFoundException: File res/drawable-mdpi/title_bar_shadow.9.png from drawable resource ID #0x7f02002a
        at android.content.res.Resources.loadDrawable(Resources.java:1710)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
        at android.widget.ImageView.<init>(ImageView.java:115)
        ... 27 more
        Caused by: java.io.FileNotFoundException: res/drawable-mdpi/title_bar_shadow.9.png
        at android.content.res.AssetManager.openNonAssetNative(Native Method)
        at android.content.res.AssetManager.openNonAsset(AssetManager.java:391)
        at android.content.res.Resources.loadDrawable(Resources.java:1702)
        ... 29 more
Run Code Online (Sandbox Code Playgroud)

Edi*_*Edi 3

如果操作系统需要此图像,为什么它不存在?

当模拟器是 LDPI 时,为什么异常与 MPDI 图像相关?

如果所请求的资源(title_bar_shadow.9.png)不存在于drawable-ldpi中(直到Android 2.3),Android将尝试找到最佳匹配(drawable-mdpi将是下一个要搜索的文件夹) 。无论如何,该文件也不会在那里找到(同样,直到 Android 2.3 之前它才在那里)。因此,下一步是在drawable-hdpi(可以找到它的地方)中搜索它。但显然搜索停止在drawable-mdpi上(这很奇怪......也许是Android 2.1中的一个错误?你可以尝试Android 2.2模拟器)

为什么要寻找这张图片?(我已经检查过,我的申请中没有引用它)。无论如何,启动器活动都禁用了标题栏。

标题栏不使用该图像(阴影)。它显示在标题栏下方。要使其消失,您必须创建自己的主题,如下所示:

<style
  name="Theme"
  parent="android:Theme.NoTitleBar">
  <item
    name="android:windowContentOverlay">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)