加载矢量drawable,这个
ContextCompat.getDrawable(context, R.drawable.figure_bp);
在5.0之前的设备上正常工作。在较新的API上,它崩溃并出现错误
Resources$NotFoundException: File res/drawable/figure_wp.xml from drawable resource ID #0x7f070079
我尝试过其他版本25.3.1,26 ......
不同的方法:
VectorDrawableCompat.create(context.getResources(), R.drawable.figure_wp, null);
context.getResources().getDrawable(R.drawable.figure_wp, null);
AppCompatResources.getDrawable(context, R.drawable.figure_wp);
...
还有vectorDrawables.useSupportLibrary = true
总是同样的问题。有时它会先检查anydpi
我见过大多数相关问题,没有运气
答案 0 :(得分:1)
浪费了3个小时后,我已经弄明白了。 显然是api> 19&& api< 24不能有渐变标签。 虽然它应该忽略它们,但它却因为无关的错误而崩溃了。
更换
<aapt:attr name="android:fillColor">
<gradient android:endX="13760.793757781983"
android:endY="6638.382661392212"
android:startX="3736.5152613830564"
android:startY="6573.006932067871" android:type="linear">
<item android:color="#FFFFFFFF" android:offset="0.0"/>
<item android:color="#00FFFFFF" android:offset="1.0"/>
</gradient>
</aapt:attr>
带
android:fillColor = "#FFFFFFFF"
修复了问题。不得不在我使用的所有矢量上手动完成,因为它是android studio的SVG解析器,它为我解析了原始的svg。
感谢ResourcesNotFoundException when resource available (API 22 and 23 devices) 指导我进入解决方案!
答案 1 :(得分:0)
尝试在gradle中添加vectorDrawables.useSupportLibrary = true
defaultConfig {
applicationId "...."
minSdkVersion ..
targetSdkVersion ..
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}