web-dev-qa-db-ja.com

Resources $ NotFoundException:使用しようとしているリソースがベクターリソースである場合、サポートされていない方法でそれを参照している可能性があります

次のエラーメッセージが表示されます

Android.content.res.Resources$NotFoundException: If the resource you are trying to use is a vector resource, you may be referencing it in an unsupported way. See AppCompatDelegate.setCompatVectorFromResourcesEnabled() for more info.

以下を設定しようとしたとき:

view.setBackgroundResource(R.drawable.highlight_background);

または

view.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.highlight_background));

AppCompatImageも使ってみました。これは、Android 4.4.4のデバイスで発生します。追加を提供する別のStackOverflowスレッドを見つけました

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);

myApplicationクラスに

    vectorDrawables.useSupportLibrary = true

build.gradleに。ただし、エラーは引き続き発生します。ドローアブルは次のもので構成されています。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
   <stroke Android:width="2dp" Android:color="?attr/colorAccent" />
</shape>

画像を囲むのは単なる線です。誰か助けてもらえますか?

前もって感謝します!

11
Lars

view.setBackgroundDrawable()は非推奨です。代わりにview.setBackgroundResource(int resId)を使用してください

例えば、

yourview.setBackgroundResource(R.drawable.highlight_background);

そしてオフコースはこのようにあなたの色の値を変えます

Android:color="@color/color_defined_in_colors_xml_file"

それが役立つことを願っています。

6
AndroidGeek

imageView.setImageResource();を使用できます。

2
Uday Ramjiyani