jpush / jpush/jpush-phonegap-plugin

cordova@11 cordova-common@4.1.0 添加插件时报config file undefined requested for changes not found at cordova/platforms/android/undefined, ignoring

Open
#453 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
922
Forks
350
PR merge metrics
No merged PRs in 30d

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:cordova-common@4.1.0
  • 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。经排查,应该新版本cordova-common@4.1.0导致出错,同时也测试过低版本的cordova-common@4.0.2则不出错此类问题。出现问题位置,platforms/android/android.json,当cordova-common@4.1.0时json结果中会出一个undefined的key

重现步骤

1、corodva创建新工程;
2、cordova添加android平台,即cordova platform add android@10.1.0
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

背景

你尝试做过些什么?
使用测试过低版本的cordova-common@4.0.2,其他环境不变的情况下,则不会出错此类问题。

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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with platforms/android/android.json and reproduce the setup using cordova 11.0.0, cordova-android 10.1.0, cordova-common 4.1.0, and jpush-phonegap-plugin. Compare the generated config_munge entries with cordova-common 4.0.2, then verify that plugin installation and cordova build android no longer produce the undefined config-file warning.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, javascript
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.