2

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

4

2 回答 2

4

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

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

希望这可以帮助某人。

于 2019-11-06T02:43:11.013 回答
0

我在安装插件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

或者

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

包.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", /*  */
于 2020-11-05T04:20:41.923 回答