我一步一步地遵循了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,资源ID为#0x7f0700a9
我的文件drawable / splash_screen_background是这个文件:
Direct iteration
[1, 2]
[2, 1]
Listing
[1, 2]
[1, 2]
我尝试使用 This answer显示了一些非常复杂的额外配置,包括 在Android上处理可以在多个API上使用的<?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
,从而消除了item
,但问题仍然存在。我见过有人说改用bitmap
,但是他们说这在android:drawable=
选项,我不确定这将如何影响我的应用程序,是否会改变矢量图形的性能?gradle
的正确方法是什么?
答案 0 :(得分:0)
就像您在评论中建议的那样,该问题的解决方案是,您的资源不在可绘制的文件夹中。
所有可绘制资源文件也应位于“可绘制”中。如果您具有较高Android版本的特殊功能,则可以将文件上传到“ drawable-v21”,“ drawable-v24”,...
我希望这会有所帮助,我遇到了同样的问题,并将来自不同drawable文件夹的所有资源放入全局drawable文件夹后,我的问题得到了解决。