Я не могу использовать значение цвета, чтобы установить фон для макета - PullRequest
0 голосов
/ 21 сентября 2019

это мой макет

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/c8"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    tools:context="com.leo.accelerate.activity.SplashActivity">

    <ImageView
        android:layout_marginTop="190dp"
        android:layout_width="146dp"
        android:layout_height="146dp"
        android:src="@mipmap/icon_splash"
        />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="36dp"
        android:src="@mipmap/boost_shanping_name"
        />

</LinearLayout>

Я получил ошибку:

     Caused by: android.content.res.Resources$NotFoundException: Resource "com.leo.accelerate:style/RtlOverlay.DialogWindowTitle.AppCompat" (7f0b0028)  is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f0b0028 a=-1 r=0x7f0b0028}

Я нашел цвет проблемы в соответствии со значением адреса 0x7f0b0028

 find . -type f | xargs grep "0x7f0b0028"

result:
./app-default-release/res/values/public.xml:    <public type="color" name="c8" id="0x7f0b0028" />
./app-default-release/smali/com/leo/accelerate/R$color.smali:.field public static final c8:I = 0x7f0b0028

Код проблемы - это значение color с именем c8. Оно используется в свойстве backgroud в макете

Когда я заменяю его на рисуемый объект, проблема не существует.

как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Это должно работать просто отлично, единственные известные мне причины, которые могут вызвать проблему:

  1. имя предоставленного вами атрибута цвета неверно.

  2. значение, которое вы дали атрибуту в папке значений цвета, не поддерживается.

  3. вы записали атрибут фона более одного раза в элементе xml, который вы 'мы пытаемся нарисовать.

  4. используемый вами эмулятор не поддерживает этот цвет.

Пожалуйста, проверьте все эти причины, если после проверки всех этих 4 проблем у вас по-прежнему есть, свяжитесь с нами, и мы постараемся продолжить расследование вашей проблемы.

С наилучшими пожеланиями, Лидор

0 голосов
/ 21 сентября 2019

Можете ли вы проверить значение цвета @ color / c8 .Ваш цвет c8 может быть неправильным.Попробуйте с другим цветом, это работа.Попробуйте с android: background = "@ android: color / black" .Если это работает, то я уверен, что ваше значение цвета неверно.Нельзя использовать шестнадцатеричное значение цвета, например 0x7f0b0028 .

...