Ionic 4 + FCM:如何修复编译器错误 - 未找到 colorAccent?

Ionic 4 + FCM: How to fix the compiler error - colorAccent not found?

我正在开发 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 文件中读取值时没有任何问题?

好的,我明白了。我必须在 config.xml:

中包含以下行
<resource-file src="res/values/colors.xml" target="app/src/main/res/values/colors.xml" />
  1. 这实际上是复制了 colors.xml 文件从项目根目录中的位置 res/values 到位置 platforms/android/app/src/main/res/values/ 文件夹(考虑到您正在为 Android 构建此文件)

  2. 然后在 colors.xml 文件中查找名称 "orange" 并查找相应的值(即在本例中为 #FFA500)和将其指定为通知图标颜色。

就是这样! 所以从现在开始,无论何时收到通知,它的颜色都将等于我在 [=36] 中指示的 orange 颜色=] 文件.

希望这对某人有所帮助。

我运行在安装插件cordova-plugin-firebasex

时遇到同样的错误

清理插件,平台搭建成功

rm -Rf platforms/android

cordova plugin rm cordova-plugin-firebasex

rm -Rf plugins/ node_modules/

npm install

ionic cordova plugin add cordova-plugin-firebasex

ionic cordova build android

如果您遇到问题, 您可以通过修改以下版本来重建平台:

package.json

  "cordova-plugin-firebasex": "^10.2.0-cli", /* VERSION */

  "cordova-plugin-firebasex": { /* OPTIONS */
    "FIREBASE_ANALYTICS_COLLECTION_ENABLED": "true",
    "FIREBASE_PERFORMANCE_COLLECTION_ENABLED": "true",
    "FIREBASE_CRASHLYTICS_COLLECTION_ENABLED": "true",
    "ANDROID_ICON_ACCENT": "#FF00FFFF",
    "ANDROID_PLAY_SERVICES_AUTH_VERSION": "18.0.0",
    "ANDROID_FIREBASE_ANALYTICS_VERSION": "17.4.3",
    "ANDROID_FIREBASE_MESSAGING_VERSION": "20.2.1",
    "ANDROID_FIREBASE_CONFIG_VERSION": "19.1.4",
    "ANDROID_FIREBASE_PERF_VERSION": "19.0.7",
    "ANDROID_FIREBASE_AUTH_VERSION": "19.3.1",
    "ANDROID_FIREBASE_FIRESTORE_VERSION": "21.4.3",
    "ANDROID_FIREBASE_CRASHLYTICS_VERSION": "17.0.1",
    "ANDROID_FIREBASE_CRASHLYTICS_NDK_VERSION": "17.0.1",
    "ANDROID_GSON_VERSION": "2.8.6",
    "ANDROID_PLAY_SERVICES_TAGMANAGER_VERSION": "17.0.0",
    "ANDROID_FIREBASE_INAPPMESSAGING_VERSION": "19.0.7"
  },

  "@ionic-native/firebase-x": "^5.29.0", /*  */