Skip to content

cordova@11 [email protected] 添加插件时报config file undefined requested for changes not found at cordova/platforms/android/undefined, ignoring #453

Open
@tianheren1980

Description

@tianheren1980

你的运行环境

  • 插件版本:
  • 平台(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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions