cordova@11 [email protected] 添加插件时报config file undefined requested for changes not found at cordova/platforms/android/undefined, ignoring #453
Description
你的运行环境
- 插件版本:
- 平台(Android / iOS):android sdk 23~33,android sdk tools 33.0.0和30.0.3
- Cordova version (
cordova -v
):cordova 11.0.0 - Cordova platform version (
cordova platform ls
):cordova-android 10.1.0 - cordova-common:[email protected]
- gradle: gradle-7.5.1、gradle-6.9.3和gradle-7.1.1
期望效果
可以正常编译,jpush相关配置可正常自动添加至AndroidManifest.xml
实际效果
添加jpush插件,cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey,当执行添加cordova-plugin-jcore" for android时报config file undefined requested for changes not found at cordova/platforms/android/undefined, ignoring。经排查,应该新版本[email protected]导致出错,同时也测试过低版本的[email protected]则不出错此类问题。出现问题位置,platforms/android/android.json,当[email protected]时json结果中会出一个undefined的key
重现步骤
1、corodva创建新工程;
2、cordova添加android平台,即cordova platform add [email protected]
3、添加jpush插件,即:cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey
4、编译,cordova build android
即可重现config file undefined requested for changes not found at cordova/platforms/android/undefined
背景
你尝试做过些什么?
使用测试过低版本的[email protected],其他环境不变的情况下,则不会出错此类问题。
Debug logs
android.json文件部分内容:
{
"prepare_queue": {
"installed": [],
"uninstalled": []
},
"config_munge": {
"files": {
"AndroidManifest.xml": {
},
"res/xml/config.xml": {
},
"config.xml": {
"parents": {
"/*": [
]
}
},
"undefined": {
"parents": {
"AndroidManifest.xml": [
{
"xml": "<permission android:name=\"包名.permission.JPUSH_MESSAGE\" android:protectionLevel=\"signature\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"包名.permission.JPUSH_MESSAGE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.INTERNET\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.VIBRATE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.ACCESS_BACKGROUND_LOCATION\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.GET_TASKS\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.QUERY_ALL_PACKAGES\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<uses-permission android:name=\"com.vivo.notification.permission.BADGE_ICON\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<activity android:exported=\"true\" android:name=\"cn.jpush.android.ui.PopWinActivity\" android:theme=\"@style/MyDialogStyle\"><intent-filter><category android:name=\"android.intent.category.DEFAULT\" /><action android:name=\"cn.jpush.android.ui.PopWinActivity\" /><category android:name=\"包名\" /></intent-filter></activity>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<activity android:configChanges=\"orientation|keyboardHidden\" android:exported=\"false\" android:name=\"cn.jpush.android.ui.PushActivity\" android:theme=\"@android:style/Theme.NoTitleBar\"><intent-filter><action android:name=\"cn.jpush.android.ui.PushActivity\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"包名\" /></intent-filter></activity>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<service android:enabled=\"true\" android:exported=\"false\" android:name=\"cn.jpush.android.service.PushService\" android:process=\":pushcore\"><intent-filter><action android:name=\"cn.jpush.android.intent.REGISTER\" /><action android:name=\"cn.jpush.android.intent.REPORT\" /><action android:name=\"cn.jpush.android.intent.PushService\" /><action android:name=\"cn.jpush.android.intent.PUSH_TIME\" /></intent-filter></service>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<provider android:authorities=\"包名.DataProvider\" android:exported=\"false\" android:name=\"cn.jpush.android.service.DataProvider\" android:process=\":pushcore\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<service android:enabled=\"true\" android:exported=\"true\" android:name=\"cn.jpush.android.service.DaemonService\"><intent-filter><action android:name=\"cn.jpush.android.intent.DaemonService\" /><category android:name=\"包名\" /></intent-filter></service>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<provider android:authorities=\"包名.DownloadProvider\" android:exported=\"true\" android:name=\"cn.jpush.android.service.DownloadProvider\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<receiver android:enabled=\"true\" android:exported=\"false\" android:name=\"cn.jpush.android.service.PushReceiver\"><intent-filter android:priority=\"1000\"><action android:name=\"cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY\" /><category android:name=\"包名\" /></intent-filter><intent-filter><action android:name=\"android.net.conn.CONNECTIVITY_CHANGE\" /></intent-filter><intent-filter><action android:name=\"android.intent.action.PACKAGE_ADDED\" /><action android:name=\"android.intent.action.PACKAGE_REMOVED\" /><data android:scheme=\"package\" /></intent-filter></receiver>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<receiver android:exported=\"false\" android:name=\"cn.jpush.android.service.AlarmReceiver\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<receiver android:exported=\"false\" android:name=\"cn.jpush.android.service.SchedulerReceiver\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<receiver android:exported=\"false\" android:name=\"cn.jiguang.cordova.push.JPushEventReceiver\"><intent-filter><action android:name=\"cn.jpush.android.intent.RECEIVE_MESSAGE\" /><category android:name=\"包名\" /></intent-filter></receiver>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<activity android:exported=\"true\" android:name=\"cn.jpush.android.service.JNotifyActivity\" android:taskAffinity=\"jpush.custom\" android:theme=\"@style/JPushTheme\"><intent-filter><action android:name=\"cn.jpush.android.intent.JNotifyActivity\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"包名\" /></intent-filter></activity>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<activity android:exported=\"true\" android:name=\"cn.android.service.JTransitActivity\" android:taskAffinity=\"jpush.custom\" android:theme=\"@style/JPushTheme\"><intent-filter><action android:name=\"cn.android.service.JTransitActivity\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"包名\" /></intent-filter></activity>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<service android:exported=\"false\" android:name=\"cn.jiguang.cordova.push.PushService\" android:process=\":pushcore\"><intent-filter><action android:name=\"cn.jiguang.user.service.action\" /></intent-filter></service>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<provider android:authorities=\"包名.JAdFileProvider\" android:exported=\"false\" android:grantUriPermissions=\"true\" android:name=\"cn.jiguang.union.ads.service.JAdFileProvider\"><meta-data android:name=\"android.support.FILE_PROVIDER_PATHS\" android:resource=\"@xml/jpush_file_paths\" /><intent-filter><action android:name=\"cn.jpush.android.intent.FileProvider\" /><category android:name=\"包名\" /></intent-filter></provider>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<receiver android:enabled=\"true\" android:exported=\"false\" android:name=\"cn.jiguang.cordova.push.JPushReceiver\"><intent-filter><action android:name=\"cn.jpush.android.intent.REGISTRATION\" /><action android:name=\"cn.jpush.android.intent.MESSAGE_RECEIVED\" /><action android:name=\"cn.jpush.android.intent.NOTIFICATION_RECEIVED\" /><action android:name=\"cn.jpush.android.intent.NOTIFICATION_OPENED\" /><action android:name=\"cn.jpush.android.intent.CONNECTION\" /><category android:name=\"包名\" /></intent-filter></receiver>",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<meta-data android:name=\"JPUSH_CHANNEL\" android:value=\"developer-default\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
},
{
"xml": "<meta-data android:name=\"JPUSH_APPKEY\" android:value=\"APP_KEY\" />",
"count": 1,
"mode": "merge",
"plugin": "jpush-phonegap-plugin"
}
]
}
}
}
}
}
包括 Android 或 iOS 的日志:
- iOS: XCode logs
- Android: $ adb logcat / Android Studio logcat