Ресурсы $NotFoundException: ресурс не является Drawable (цвет или путь)?

У меня есть textview, когда он щелкнут, я заполняю listView внутри диалогового окна. Этот код работал нормально, но сегодня он бросает исключение.

это мой код:

tvSelectedFont = (TextView)findViewById(R.id.lblQuoteSelectedFont);
    tvSelectedFont.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            ListView listView = new ListView(context);
            listView.setAdapter(new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1,
                    new String[] {"Default", "Serif", "Monospace"}));
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(listView);
            dialog.setTitle(R.string.txt_settings_QuotefontName);

            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    String selectedTypeFace = ((TextView)view).getText().toString();
                    tvSelectedFont.setText(selectedTypeFace);
                    switch(selectedTypeFace)
                    {
                        case "Serif":
                            selectedQuoteTypeFace = Typeface.SERIF;
                            break;
                        case "Monospace":
                            selectedQuoteTypeFace = Typeface.MONOSPACE;
                            break;
                        default:
                            selectedQuoteTypeFace = Typeface.DEFAULT;
                            break;
                    }
                    tvQuoteTextSample.setTypeface(selectedQuoteTypeFace, selectedQuoteFontStyle);
                    dialog.dismiss();
                }
            });

            dialog.show();
        }
    });

Ошибка logcat показывает это:

Device driver API version: 29
User space API version: 29
03-17 14:33:24.701  23220-23220/com.example.manas.dailyquoteswidget E/﹕ mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Tue Jul 22 19:59:34 KST 2014
03-17 14:33:27.926  23220-23220/com.example.manas.dailyquoteswidget E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.manas.dailyquoteswidget, PID: 23220
android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x7f0100a7 a=3}
        at android.content.res.Resources.loadDrawable(Resources.java:3415)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
        at android.widget.AbsListView.<init>(AbsListView.java:1089)
        at android.widget.ListView.<init>(ListView.java:152)
        at android.widget.ListView.<init>(ListView.java:148)
        at android.widget.ListView.<init>(ListView.java:144)
        at com.example.manas.dailyquoteswidget.DailyQuotesWidgetConfigureActivity$6.onClick(DailyQuotesWidgetConfigureActivity.java:182)
        at android.view.View.performClick(View.java:4640)
        at android.view.View$PerformClick.run(View.java:19425)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:146)
        at android.app.ActivityThread.main(ActivityThread.java:5593)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
        at dalvik.system.NativeStart.main(Native Method)

Не могу понять проблему. Любая помощь пожалуйста?

Ответы

Ответ 1

Я столкнулся с этой проблемой в недавнем приложении, которое я сделал. В моем случае проблема заключалась в том, что я поместил изображение в папку с именем drawable-v21, которая недоступна в более раннем API Android.

Решение состоит в том, чтобы выкладывать ваши файлы с возможностью рисования -... dpi.

Надеюсь, что это поможет.

Ответ 2

В Android Studio измените иерархию проекта на Файлы проекта.

Затем перейдите в папку res, вы увидите несколько папок для рисования. Скопируйте изображения в соответствующую папку (для рисования) или на основе уровня API.

В моем случае изображение присутствовало в папке drawable-24, поэтому оно не было доступно на устройствах api <24.

Screenshot.

Ответ 3

Я понял, это не проблема с кодом, а тема. Недавно я изменил тему с android:theme="@style/AppTheme" до android:theme="@style/Theme.AppCompat.NoActionBar" после того, как проблема началась. Я вернул старый AppTheme, и он снова начал работать. Кажется, что тема NoActionBar не была совместима для диалоговых окон.

Ответ 4

На Mac в Finder я просто переместил все файлы в папке.. /drawable/drawable-24 в /drawable, и все работало как на старых версиях Android, так и на Oreo. Также, когда вы копируете и вставляете изображения в Android Studio, убедитесь, что вставили их в drawable not drawable//drawable-24, которое может быть по умолчанию.

Ответ 5

Я столкнулся с этой ошибкой в ​​другой ситуации, и оказалось, что я случайно установил значение R.id.something вместо R.drawable.something!

Ответ 6

Убедитесь, что вы следовали приведенным выше решениям, попробуйте это, если не из них работал для вас.

В моем случае проблема была из-за нарисованных иконок только с разрешением hdpi. Измените эти значки на папку, которая также содержит разрешения xhdpi, mdpi, xxhdpi и xxxhdpi.

И это решило мою проблему.

PS:

Я конвертирую иконки в различное разрешение изображения, установив плагин "Android drawable importer".

Ответ 7

убедитесь, что ваш доступ ко всем папкам каталога ресурсов drawble.

Ответ 8

Может быть, ваш ресурс просмотра фона не в рисованной директории, а в цвете. просмотр фона не поддерживает ресурс в цвете.

посмотреть фон, как это

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true">
            <shape>
                <solid android:color="#ffffffff"/>
            </shape>
        </item>
        <item android:state_selected="false">
            <shape>
                <solid android:color="#00000000"/>
            </shape>
        </item>
    </selector>

Ответ 9

Вы можете заставить его работать, убедившись, что ваш drawable.xml не включен (v24)

Ответ 10

<ImageView
...
            android:src="@drawable/realtconsult" />

Если вы напишите это из представления, это будет работать.