web-dev-qa-db-ja.com

スプラッシュスクリーンエラー:Android.content.res.Resources $ NotFoundException:Drawable

次のようにしてAndroidアプリにスプラッシュスクリーンを実装しようとしています この記事 。私はステップバイステップでそれを続けましたが、アプリを実行しようとするたびに、即座にクラッシュし、私のlogcatに次のエラーが発生します。

_2019-01-05 10:46:33.682 2265-2265/com.example.khoi.parkingapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.khoi.parkingapp, PID: 2265
    Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.khoi.parkingapp/com.example.khoi.parkingapp.SplashActivity}: Android.content.res.Resources$NotFoundException: Drawable com.example.khoi.parkingapp:drawable/splash_background with resource ID #0x7f07008d
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2955)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3030)
        at Android.app.ActivityThread.-wrap11(Unknown Source:0)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1696)
        at Android.os.Handler.dispatchMessage(Handler.Java:105)
        at Android.os.Looper.loop(Looper.Java:164)
        at Android.app.ActivityThread.main(ActivityThread.Java:6938)
        at Java.lang.reflect.Method.invoke(Native Method)
        at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:327)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1374)
     Caused by: Android.content.res.Resources$NotFoundException: Drawable com.example.khoi.parkingapp:drawable/splash_background with resource ID #0x7f07008d
     Caused by: Android.content.res.Resources$NotFoundException: File res/drawable/splash_background.xml from drawable resource ID #0x7f07008d
        at Android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.Java:837)
        at Android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.Java:659)
        at Android.content.res.Resources.getDrawableForDensity(Resources.Java:891)
        at Android.content.res.Resources.getDrawable(Resources.Java:833)
        at Android.content.Context.getDrawable(Context.Java:605)
        at Android.support.v4.content.ContextCompat.getDrawable(ContextCompat.Java:463)
        at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:203)
        at Android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.Java:86)
        at Android.support.v7.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.Java:260)
        at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:182)
        at Android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.Java:520)
        at Android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.Java:71)
        at com.example.khoi.parkingapp.SplashActivity.onCreate(SplashActivity.kt:10)
        at Android.app.Activity.performCreate(Activity.Java:7183)
        at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1220)
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2908)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3030)
        at Android.app.ActivityThread.-wrap11(Unknown Source:0)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1696)
        at Android.os.Handler.dispatchMessage(Handler.Java:105)
        at Android.os.Looper.loop(Looper.Java:164)
        at Android.app.ActivityThread.main(ActivityThread.Java:6938)
        at Java.lang.reflect.Method.invoke(Native Method)
        at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:327)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1374)
     Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #8: <bitmap> requires a valid 'src' attribute
        at Android.graphics.drawable.BitmapDrawable.updateStateFromTypedArray(BitmapDrawable.Java:823)
        at Android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.Java:754)
        at Android.graphics.drawable.DrawableInflater.inflateFromXmlForDensity(DrawableInflater.Java:146)
        at Android.graphics.drawable.Drawable.createFromXmlInnerForDensity(Drawable.Java:1322)
        at Android.graphics.drawable.Drawable.createFromXmlInner(Drawable.Java:1311)
        at Android.graphics.drawable.LayerDrawable.inflateLayers(LayerDrawable.Java:284)
        at Android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.Java:194)
        at Android.graphics.drawable.DrawableInflater.inflateFromXmlForDensity(DrawableInflater.Java:146)
        at Android.graphics.drawable.Drawable.createFromXmlInnerForDensity(Drawable.Java:1322)
2019-01-05 10:46:33.682 2265-2265/com.example.khoi.parkingapp E/AndroidRuntime:     at Android.graphics.drawable.Drawable.createFromXmlForDensity(Drawable.Java:1281)
        at Android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.Java:824)
            ... 24 more
_

これがmysplash_background.xmlです。

_<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <item
            Android:drawable="@color/colorPrimary"/>

    <item>
        <bitmap
                Android:gravity="center"
                Android:src="@mipmap/ic_launcher"/>
    </item>

</layer-list>
_

どんな助けにも感謝されるでしょう

10
Barcode

最近の多くの人々は複数のイメージを持つMipmapsを使用しています - ベクトルアセットを使用したい場合は、アイテムタグを置き換えます(ビットマップを持つもの、 'background_splash.xml'または名前付き)。

<item
    Android:height="48dp"
    Android:width="48dp"
    Android:drawable="@mipmap/ic_launcher"
    Android:gravity="center" />
 _

高さ/幅は私自身であり、置き換えることができます。また、これはAPIレベル23以上でのみ機能します。低い場合は、これを実行できます。

<item
    Android:top="48dp"
    Android:bottom="48dp"
    Android:left="48dp"
    Android:right="48dp"
    Android:drawable="@mipmap/ic_launcher"
    Android:gravity="center" />
 _
0
theDude