Ionic 4 + FCM: Как исправить ошибку компилятора - colorAccent не найден? - PullRequest
0 голосов
/ 02 ноября 2019

Я работаю над приложением Ionic 4. Я пытаюсь настроить цвет "default_notification_color", но компилятор выдает ошибку. В моем файле config.xml есть следующее:

<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/orange" />

Я создал новый файл с именем "colors.xml" и поместил его в следующую папку в корне моего проекта:

gf > res > values > colors.xml

Вот содержимое файла colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorAccent">#3880ff</color>
    <color name="white">#FFFFFF</color>
    <color name="ivory">#FFFFF0</color>       
    <color name="orange">#FFA500</color>
    <color name="navy">#000080</color>
    <color name="black">#000000</color>
</resources>

Я попытался создать приложение, используя следующую команду:

ionic cordova build android --prod 

Но он выдает мне следующую ошибку:

BUILD FAILED in 9s
24 actionable tasks: 4 executed, 20 up-to-date
D:\Softwares\wamp\www\gf\platforms\android\gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed

  D:\Softwares\wamp\www\gf\platforms\android\app\build\intermediates\merged_manifests\debug\AndroidManifest.xml:122: AAPT: error: resource color/orange (aka com.mydomain.myapp:color/orange) not found.

  error: failed processing manifest.

Как это можно исправить, чтобы значение считывалось из файла colors.xml без каких-либо проблем?

1 Ответ

0 голосов
/ 06 ноября 2019

Хорошо, я понял это. Я должен был включить следующую строку в config.xml:

<resource-file src="res/values/colors.xml" target="app/src/main/res/values/colors.xml" />
  1. По сути, он копирует файл colors.xml из местоположения res/values в корне проекта, чтобыпапка location platforms/android/app/src/main/res/values/ (учитывая, что вы создаете ее для Android)

  2. Затем она ищет в файле colors.xml имя "orange" и ищет соответствующее значение (то есть в этом случае, будет #FFA500) и назначит его в качестве цвета значка уведомления.

Вот и все! Так что теперь, когда уведомлениеПолученный, его цвет будет равен orange цвету, как я указал в файле colors.xml.

Надеюсь, это кому-нибудь поможет.

...