Splash Screen仅在Android 8.1上触发Resources $ NotFoundException

问题描述 投票:2回答:1

我在这里一步一步地关注this tutorial,它在我的API 21模拟器上工作正常,但是在我的27上它会在应用程序加载时崩溃:

java.lang.RuntimeException:无法启动活动ComponentInfo {com.myapp.myapp / com.myapp.myapp.ui.SplashScreenActivity}:android.content.res.Resources $ NotFoundException:Drawable com.myapp.myapp:drawable / splash_screen_background with资源ID#0x7f0700a9

我的文件drawable / splash_screen_background是这个:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:type="radial"
                android:gradientRadius="100%p"
                android:startColor="@color/primaryColor"
                android:endColor="@color/primaryDarkColor"/>
        </shape>
    </item>

    <item>
        <bitmap
        android:gravity="center"
            android:src="@drawable/ic_home_white_24dp"/>
    </item>
</layer-list>

我试图使用app:srcCompat,将drawable直接传递给item,消除了bitmap,但问题仍然存在。我见过有人说使用android:drawable=代替,但他们说这会在<API 21上崩溃。

This answer显示了一些相当复杂的额外配置,包括gradle选项,我不确定这将如何影响我的应用程序,它是否会改变矢量图形的性能?

什么是在Android上处理layer-list的正确方法,它可以在几个API上运行?

android android-resources android-theme
1个回答
0
投票

就像您在评论中建议的那样,问题的解决方案是,您的资源不在drawable文件夹中。

您的所有可绘制资源文件也应该是“可绘制的”。如果你有更高的Android版本的特殊功能,你可以上传文件“drawable-v21”,“drawable-v24”,...

我希望这会有所帮助,我有同样的问题,并在将全部drawable文件夹中的不同drawable文件夹中的每个资源放入后,我的问题就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.