【问题标题】:Ionic 4 + FCM: How to fix the compiler error - colorAccent not found?Ionic 4 + FCM:如何修复编译器错误 - colorAccent 未找到?
【发布时间】:2020-02-28 06:36:09
【问题描述】:

我正在开发 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 文件中读取值而不会出现任何问题?

【问题讨论】:

    标签: firebase-cloud-messaging ionic4 cordova-plugin-fcm


    【解决方案1】:

    好的,我想通了。我必须在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)并将其指定为通知图标颜色。

    就是这样!所以从现在开始,每当收到通知时,它的颜色将等于我在 colors.xml 文件中指示的orange 颜色。

    希望这对某人有所帮助。

    【讨论】:

    • @Denver - 我遇到了同样的错误,但是我的 config.xml 中有资源文件行。 resources/values/colors.xml 文件中需要哪些颜色键?我只定义了backgroundaccent
    • @rolinger 无论你有什么,只要你只使用config.xml 文件中的那些变量,就可以正常工作。因此,在您的情况下,这些值可能是:android:resource="@color/background" or android:resource="@color/accent"。除了我刚刚展示的内容之外,没有其他任何内容,除非您先将它们添加到 colors.xml 文件中。有意义吗?
    • 我想通了,ic_background 缺少 colors.xml
    【解决方案2】:

    我在安装插件时遇到了同样的错误 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", /*  */
    

    【讨论】:

      猜你喜欢
      • 2023-01-31
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 2018-10-09
      • 1970-01-01
      相关资源
      最近更新 更多