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" />
这实际上是复制了 colors.xml
文件从项目根目录中的位置 res/values
到位置 platforms/android/app/src/main/res/values/
文件夹(考虑到您正在为 Android 构建此文件)
然后在 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", /* */
我正在开发 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" />
这实际上是复制了 colors.xml 文件从项目根目录中的位置
res/values
到位置platforms/android/app/src/main/res/values/
文件夹(考虑到您正在为 Android 构建此文件)然后在
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", /* */