代码之家  ›  专栏  ›  技术社区  ›  majidkabir

android 4.2.2中未找到资源异常

  •  4
  • majidkabir  · 技术社区  · 7 年前

    我已经为启动屏幕创建了一个主题 style.xml 文件

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
       <item name="android:windowBackground">@drawable/splash_background_96dp</item>
    </style>
    

    这个 splash_background_96dp 是可绘制的xml。

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@color/colorWhite"/>
    
        <item android:gravity="center">
            <bitmap
                android:gravity="fill_horizontal|fill_vertical"
                android:src="@drawable/logo1"/>
        </item>
    </layer-list>
    

    logo1是一个png文件。

    在我的应用程序中,我将此主题用于启动屏幕活动。它在android 7.1.0上工作,但在android 4.2.2上出现以下异常:

    03-04 15:31:02.849 14225-14225/com.sarsabad.sarsabadmanager E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sarsabad.sarsabadmanager/com.sarsabad.sarsabadmanager.ui.SplashActivity}: android.content.res.Resources$NotFoundException: File res/drawable/splash_background_96dp.xml from drawable resource ID #0x7f0700e4
                                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
                                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
                                                                                      at android.app.ActivityThread.access$700(ActivityThread.java:150)
                                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                      at android.os.Looper.loop(Looper.java:137)
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:5283)
                                                                                      at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                      at java.lang.reflect.Method.invoke(Method.java:511)
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
                                                                                      at dalvik.system.NativeStart.main(Native Method)
                                                                                   Caused by: android.content.res.Resources$NotFoundException: File res/drawable/splash_background_96dp.xml from drawable resource ID #0x7f0700e4
                                                                                      at android.content.res.Resources.loadDrawable(Resources.java:2842)
                                                                                      at android.content.res.Resources.getDrawable(Resources.java:1521)
                                                                                      at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:360)
                                                                                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:198)
                                                                                      at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:85)
                                                                                      at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:128)
                                                                                      at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149)
                                                                                      at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:29)
                                                                                      at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:54)
                                                                                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:202)
                                                                                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183)
                                                                                      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
                                                                                      at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:70)
                                                                                      at com.sarsabad.sarsabadmanager.ui.SplashActivity.onCreate(SplashActivity.java:39)
                                                                                      at android.app.Activity.performCreate(Activity.java:5283)
                                                                                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
                                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
                                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) 
                                                                                      at android.app.ActivityThread.access$700(ActivityThread.java:150) 
                                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                      at android.os.Looper.loop(Looper.java:137) 
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:5283) 
                                                                                      at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                                      at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
                                                                                      at dalvik.system.NativeStart.main(Native Method) 
                                                                                   Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #7: <bitmap> requires a valid src attribute
                                                                                      at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:454)
                                                                                      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:921)
                                                                                      at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:165)
                                                                                      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:921)
                                                                                      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:858)
                                                                                      at android.content.res.Resources.loadDrawable(Resources.java:2839)
                                                                                      at android.content.res.Resources.getDrawable(Resources.java:1521) 
                                                                                      at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:360) 
                                                                                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:198) 
                                                                                      at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:85) 
                                                                                      at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:128) 
                                                                                      at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149) 
                                                                                      at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:29) 
                                                                                      at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:54) 
                                                                                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:202) 
                                                                                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183) 
                                                                                      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519) 
                                                                                      at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:70) 
                                                                                      at com.sarsabad.sarsabadmanager.ui.SplashActivity.onCreate(SplashActivity.java:39) 
                                                                                      at android.app.Activity.performCreate(Activity.java:5283) 
                                                                                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 
                                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) 
                                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) 
                                                                                      at android.app.ActivityThread.access$700(ActivityThread.java:150) 
                                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                      at android.os.Looper.loop(Looper.java:137) 
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:5283) 
                                                                                      at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                                      at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
                                                                                      at dalvik.system.NativeStart.main(Native Method) 
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Reaz Murshed vir us    7 年前

    为了使 logo1 文件可用,您需要将图像放入 drawable 所有Android版本都要访问的文件夹。正如我正确猜测的那样,该图像位于另一个具有更高限定符的文件夹中(即您的示例中的drawable-v21)。