[ https://issues.apache.org/jira/browse/CB-13104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe Bowser resolved CB-13104. ----------------------------- Resolution: Fixed We require Gradle as a dependency, because we're not allowed to use Gradle Wrapper due to the ASF policy of not including JARs in our repositories. > "Error: Cannot read property 'length' of undefined" when executing "cordova > run android" > ---------------------------------------------------------------------------------------- > > Key: CB-13104 > URL: https://issues.apache.org/jira/browse/CB-13104 > Project: Apache Cordova > Issue Type: Bug > Components: cordova-android > Environment: Windows 7 Professional x64 > Java SDK 8u131 > npm 5.2.0 > phonegap 6.5.2 > cordova 6.5.0 > cordova android platform 6.2.3 > android studio 2.3.3 > android sdk build-tools 26 > android sdk tools 26.0.2 > android sdk platform-tools 26.0.0 > android emulator 26.1.2 > android support repository 47.0.0 > Reporter: Bryan Bale > Assignee: Joe Bowser > Priority: Major > > I've searched for solutions to this problem, and found several reports of it, > but no solutions. Based on my many attempts to get something to work (I've > tried phonegap, ionic, and just plain cordova), I started suspecting that > there's a bug in the cordova android platform. All my build attempts have > been halted at this error message: > {{Error: Cannot read property 'length' of undefined}} > *Replicating this issue with phonegap:* > _I'm starting with phonegap because this is how I first encountered the > error, and it seems to give me the most useful information with regard to > where the error is happening._ > $ npm install -g phonegap > npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing > Set-Cookie https://nodesecurity.io/advisories/130 > npm WARN deprecated node-uuid@1.4.8: Use uuid module instead > > C:\Users\bbale\AppData\Roaming\npm\phonegap -> > C:\Users\bbale\AppData\Roaming\npm\node_modules\phonegap\bin\phonegap.js > + phonegap@6.5.2 > > added 873 packages in 146.435s > > $ phonegap create pgHello --id "com.pghello.app" --name "pgHello" --template > hello-world > Creating a new cordova project. > $ cd pgHello > $ phonegap run android --verbose > [phonegap] executing 'cordova platform add --save android ' ... > > > Adding android project... > > > > > > Creating Cordova project for the Android platform: > > > Path: platforms\android > > > Package: com.pghello.app > > > Name: pgHello > > > Activity: MainActivity > > > Android target: android-25 > > > > > > Subproject Path: CordovaLib > > > > > > Android project created with cordova-android@6.1.2 > > > Discovered plugin "cordova-plugin-battery-status" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-battery-status@~1.1.1" via npm > > > Installing "cordova-plugin-battery-status" for android > > > Saved plugin info for "cordova-plugin-battery-status" to config.xml > > > Discovered plugin "cordova-plugin-camera" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-camera@~2.1.1" via npm > > > Installing "cordova-plugin-camera" for android > Saved plugin info for "cordova-plugin-camera" to config.xml > > > Discovered plugin "cordova-plugin-media-capture" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-media-capture@~1.2.0" via npm > > > Installing "cordova-plugin-media-capture" for android > > > Fetching plugin "cordova-plugin-file" via npm > > > Installing "cordova-plugin-file" for android > > > Fetching plugin "cordova-plugin-compat" via npm > > > Installing "cordova-plugin-compat" for android > > > The Android Persistent storage location now defaults to "Internal". Please > check this plugin's README to see if your application needs any changes in > its config.xml. > If this is a new application no changes are required. > > > If this is an update to an existing application that did not specify an > "AndroidPersistentFileLocation" you may need to add: > > "<preference name="AndroidPersistentFileLocation" value="Compatibility" > />" > > to config.xml in order for the application to find previously stored files. > > > Saved plugin info for "cordova-plugin-media-capture" to config.xml > > > Discovered plugin "cordova-plugin-console" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-console@~1.0.2" via npm > > > Installing "cordova-plugin-console" for android > > > Saved plugin info for "cordova-plugin-console" to config.xml > > > Discovered plugin "cordova-plugin-contacts" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-contacts@~2.0.1" via npm > > > Installing "cordova-plugin-contacts" for android > > > Saved plugin info for "cordova-plugin-contacts" to config.xml > > > Discovered plugin "cordova-plugin-device" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-device@~1.1.1" via npm > > > Installing "cordova-plugin-device" for android > > > Saved plugin info for "cordova-plugin-device" to config.xml > > > Discovered plugin "cordova-plugin-device-motion" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-device-motion@~1.2.0" via npm > > > Installing "cordova-plugin-device-motion" for android > > > Saved plugin info for "cordova-plugin-device-motion" to config.xml > > > Discovered plugin "cordova-plugin-device-orientation" in config.xml. Adding > it to the project > > Fetching plugin "cordova-plugin-device-orientation@~1.0.2" via npm > > > Installing "cordova-plugin-device-orientation" for android > > > Saved plugin info for "cordova-plugin-device-orientation" to config.xml > > > Discovered plugin "cordova-plugin-dialogs" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-dialogs@~1.2.0" via npm > > > Installing "cordova-plugin-dialogs" for android > > > Saved plugin info for "cordova-plugin-dialogs" to config.xml > > > Discovered plugin "cordova-plugin-file-transfer" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-file-transfer@~1.5.0" via npm > > > Installing "cordova-plugin-file-transfer" for android > > > Dependent plugin "cordova-plugin-file" already installed on android. > > > Saved plugin info for "cordova-plugin-file-transfer" to config.xml > > > Discovered plugin "cordova-plugin-geolocation" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-geolocation@~2.1.0" via npm > > > Installing "cordova-plugin-geolocation" for android > > > Saved plugin info for "cordova-plugin-geolocation" to config.xml > > > Discovered plugin "cordova-plugin-globalization" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-globalization@~1.0.3" via npm > > > Installing "cordova-plugin-globalization" for android > > > Saved plugin info for "cordova-plugin-globalization" to config.xml > > > Discovered plugin "cordova-plugin-inappbrowser" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-inappbrowser@~1.3.0" via npm > > > Installing "cordova-plugin-inappbrowser" for android > > > Saved plugin info for "cordova-plugin-inappbrowser" to config.xml > > > Discovered plugin "cordova-plugin-media" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-media@~2.2.0" via npm > > > Installing "cordova-plugin-media" for android > > > Dependent plugin "cordova-plugin-file" already installed on android. > > > Saved plugin info for "cordova-plugin-media" to config.xml > > > Discovered plugin "cordova-plugin-network-information" in config.xml. Adding > it to the project > > Fetching plugin "cordova-plugin-network-information@~1.2.0" via npm > > > Installing "cordova-plugin-network-information" for android > > > Saved plugin info for "cordova-plugin-network-information" to config.xml > > > Discovered plugin "cordova-plugin-splashscreen" in config.xml. Adding it to > the project > > Fetching plugin "cordova-plugin-splashscreen@~3.2.1" via npm > > > Installing "cordova-plugin-splashscreen" for android > > > Saved plugin info for "cordova-plugin-splashscreen" to config.xml > > > Discovered plugin "cordova-plugin-statusbar" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-statusbar@~2.1.2" via npm > > > Installing "cordova-plugin-statusbar" for android > > > Saved plugin info for "cordova-plugin-statusbar" to config.xml > > > Discovered plugin "cordova-plugin-vibration" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-vibration@~2.1.0" via npm > > > Installing "cordova-plugin-vibration" for android > > > Saved plugin info for "cordova-plugin-vibration" to config.xml > > > Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the > project > > Fetching plugin "cordova-plugin-whitelist@~1.2.1" via npm > > > Installing "cordova-plugin-whitelist" for android > > > This plugin is only applicable for versions of cordova-android > greater than 4.0. If you have a previous platform version, you do *not* need > this plugin since the whitelist will be built in. > Saved plugin info for "cordova-plugin-whitelist" to config.xml > > > --save flag or autosave detected > > > Saving android@~6.1.2 into config.xml file ... > > > [phonegap] completed 'cordova platform add --save android --no-telemetry' > > > [phonegap] executing 'cordova build android --verbose ' ... > > > No scripts found for hook "before_build". > > > No scripts found for hook "before_prepare". > > > Checking config.xml for saved platforms that haven't been added to the > project > > Checking for any plugins added to the project that have not been installed in > android platform > > No differences found between plugins added to project and installed in > android platform. Continuing... > > Generating platform-specific config.xml from defaults for android at > C:\nodejs\apps\pgHello\platforms\android\res\xml\config.xml > > Merging project's config.xml into platform-specific android config.xml > > > Merging and updating files from [www, platforms\android\platform_www] to > platforms\android\assets\www > > copy platforms\android\platform_www\cordova_plugins.js > platforms\android\assets\www\cordova_plugins.js (updated file) > > copy > platforms\android\platform_www\plugins\cordova-plugin-battery-status\www\battery.js > > platforms\android\assets\www\plugins\cordova-plugin-battery-status\www\battery.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-camera\www\Camera.js > platforms\android\assets\www\plugins\cordova-plugin-camera\www\Camera.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-camera\www\CameraConstants.js > > platforms\android\assets\www\plugins\cordova-plugin-camera\www\CameraConstants.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-camera\www\CameraPopoverHandle.js > > platforms\android\assets\www\plugins\cordova-plugin-camera\www\CameraPopoverHandle.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-camera\www\CameraPopoverOptions.js > > platforms\android\assets\www\plugins\cordova-plugin-camera\www\CameraPopoverOptions.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\Contact.js > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\Contact.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactAddress.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactAddress.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactError.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactField.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactField.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactFieldType.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactFieldType.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactFindOptions.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactFindOptions.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactName.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactName.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\ContactOrganization.js > > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\ContactOrganization.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-contacts\www\contacts.js > platforms\android\assets\www\plugins\cordova-plugin-contacts\www\contacts.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-device-motion\www\Acceleration.js > > platforms\android\assets\www\plugins\cordova-plugin-device-motion\www\Acceleration.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-device-motion\www\accelerometer.js > > platforms\android\assets\www\plugins\cordova-plugin-device-motion\www\accelerometer.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-device-orientation\www\CompassError.js > > platforms\android\assets\www\plugins\cordova-plugin-device-orientation\www\CompassError.js > (updated file) > > > copy > platforms\android\platform_www\plugins\cordova-plugin-device-orientation\www\CompassHeading.js > > platforms\android\assets\www\plugins\cordova-plugin-device-orientation\www\CompassHeading.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-device-orientation\www\compass.js > > platforms\android\assets\www\plugins\cordova-plugin-device-orientation\www\compass.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-device\www\device.js > platforms\android\assets\www\plugins\cordova-plugin-device\www\device.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-dialogs\www\android\notification.js > > platforms\android\assets\www\plugins\cordova-plugin-dialogs\www\android\notification.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-dialogs\www\notification.js > > platforms\android\assets\www\plugins\cordova-plugin-dialogs\www\notification.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file-transfer\www\FileTransfer.js > > platforms\android\assets\www\plugins\cordova-plugin-file-transfer\www\FileTransfer.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file-transfer\www\FileTransferError.js > > platforms\android\assets\www\plugins\cordova-plugin-file-transfer\www\FileTransferError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\DirectoryEntry.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\DirectoryEntry.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\DirectoryReader.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\DirectoryReader.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\Entry.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\Entry.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\File.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\File.js (updated > file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileEntry.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileEntry.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileError.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileReader.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileReader.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileSystem.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileSystem.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileUploadOptions.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileUploadOptions.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileUploadResult.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileUploadResult.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\FileWriter.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\FileWriter.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\Flags.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\Flags.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\LocalFileSystem.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\LocalFileSystem.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\Metadata.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\Metadata.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\ProgressEvent.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\ProgressEvent.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\android\FileSystem.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\android\FileSystem.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\browser\isChrome.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\browser\isChrome.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\fileSystemPaths.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\fileSystemPaths.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\fileSystems-roots.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\fileSystems-roots.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\fileSystems.js > platforms\android\assets\www\plugins\cordova-plugin-file\www\fileSystems.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\requestFileSystem.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\requestFileSystem.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-file\www\resolveLocalFileSystemURI.js > > platforms\android\assets\www\plugins\cordova-plugin-file\www\resolveLocalFileSystemURI.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-geolocation\www\PositionError.js > > platforms\android\assets\www\plugins\cordova-plugin-geolocation\www\PositionError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-geolocation\www\android\geolocation.js > > platforms\android\assets\www\plugins\cordova-plugin-geolocation\www\android\geolocation.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-globalization\www\GlobalizationError.js > > platforms\android\assets\www\plugins\cordova-plugin-globalization\www\GlobalizationError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-globalization\www\globalization.js > > platforms\android\assets\www\plugins\cordova-plugin-globalization\www\globalization.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-inappbrowser\www\inappbrowser.js > > platforms\android\assets\www\plugins\cordova-plugin-inappbrowser\www\inappbrowser.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\CaptureAudioOptions.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\CaptureAudioOptions.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\CaptureError.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\CaptureError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\CaptureImageOptions.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\CaptureImageOptions.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\CaptureVideoOptions.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\CaptureVideoOptions.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\MediaFile.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\MediaFile.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\MediaFileData.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\MediaFileData.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media-capture\www\capture.js > > platforms\android\assets\www\plugins\cordova-plugin-media-capture\www\capture.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media\www\Media.js > platforms\android\assets\www\plugins\cordova-plugin-media\www\Media.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-media\www\MediaError.js > platforms\android\assets\www\plugins\cordova-plugin-media\www\MediaError.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-network-information\www\Connection.js > > platforms\android\assets\www\plugins\cordova-plugin-network-information\www\Connection.js > (updated file) > > > copy > platforms\android\platform_www\plugins\cordova-plugin-network-information\www\network.js > > platforms\android\assets\www\plugins\cordova-plugin-network-information\www\network.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-splashscreen\www\splashscreen.js > > platforms\android\assets\www\plugins\cordova-plugin-splashscreen\www\splashscreen.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-statusbar\www\statusbar.js > > platforms\android\assets\www\plugins\cordova-plugin-statusbar\www\statusbar.js > (updated file) > copy > platforms\android\platform_www\plugins\cordova-plugin-vibration\www\vibration.js > > platforms\android\assets\www\plugins\cordova-plugin-vibration\www\vibration.js > (updated file) > Wrote out android application name "pgHello" to > C:\nodejs\apps\pgHello\platforms\android\res\values\strings.xml > > android-versionCode not found in config.xml. Generating a code based on > version in config.xml (1.0.0): 10000 > > Wrote out Android package name "com.pghello.app" to > C:\nodejs\apps\pgHello\platforms\android\src\com\pghello\app\MainActivity.java > > Updating icons at platforms\android\res > > > Updating splash screens at platforms\android\res > > > Prepared android project successfully > > > No scripts found for hook "after_prepare". > > > Checking config.xml for saved plugins that haven't been added to the project > > > No scripts found for hook "before_compile". > > > ANDROID_HOME=c:\android\sdk > > > JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131 > > > Error: Error > > > at Object.module.exports.check_gradle > (C:\nodejs\apps\pgHello\platforms\android\cordova\lib\check_reqs.js:90:25) > > > at GradleBuilder.prepEnv > (C:\nodejs\apps\pgHello\platforms\android\cordova\lib\builders\GradleBuilder.js:161:23) > > > at Api.module.exports.run > (C:\nodejs\apps\pgHello\platforms\android\cordova\lib\build.js:152:20) > > > at C:\nodejs\apps\pgHello\platforms\android\cordova\Api.js:348:43 > > > at _fulfilled > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:834:54) > > > at self.promiseDispatch.done > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:863:30) > > > at Promise.promise.promiseDispatch > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:796:13) > > > at > C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:604:44 > > > at runSingle > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:137:13) > > > at flush > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:125:13) > > > _Note that the default cordova android platform version was android@~6.1.2. > The error message here is "Error: Error"._ > _Then I updated to cordova android platform 6.2.3._ > $ phonegap cordova platform rm android > $ phonegap cordova platform add android@6.2.3 > _And here's what happened:_ > $ phonegap build android --verbose > [phonegap] executing 'cordova build android --verbose ' ... > No scripts found for hook "before_build". > No scripts found for hook "before_prepare". > Checking config.xml for saved platforms that haven't been added to the project > Checking for any plugins added to the project that have not been installed in > android platform > No differences found between plugins added to project and installed in > android platform. Continuing... > Generating platform-specific config.xml from defaults for android at > C:\nodejs\apps\pgHello\platforms\android\res\xml\config.xml > Merging project's config.xml into platform-specific android config.xml > Merging and updating files from [www, platforms\android\platform_www] to > platforms\android\assets\www > Wrote out android application name "pgHello" to > C:\nodejs\apps\pgHello\platforms\android\res\values\strings.xml > android-versionCode not found in config.xml. Generating a code based on > version in config.xml (1.0.0): 10000 > Wrote out Android package name "com.pghello.app" to > C:\nodejs\apps\pgHello\platforms\android\src\com\pghello\app\MainActivity.java > Updating icons at platforms\android\res > Updating splash screens at platforms\android\res > This app does not have additional resource files defined > Prepared android project successfully > No scripts found for hook "after_prepare". > Checking config.xml for saved plugins that haven't been added to the project > No scripts found for hook "before_compile". > ANDROID_HOME=c:\android\sdk > JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131 > Error: TypeError: Cannot read property 'length' of undefined > at Object.module.exports.check_gradle > (C:\nodejs\apps\pgHello\platforms\android\cordova\lib\check_reqs.js:143:19) > at GradleBuilder.prepEnv > (C:\nodejs\apps\pgHello\platforms\android\cordova\lib\builders\GradleBuilder.js:176:23) > at Api.module.exports.run > (C:\nodejs\apps\pgHello\platforms\android\cordova\lib\build.js:152:20) > at C:\nodejs\apps\pgHello\platforms\android\cordova\Api.js:348:43 > at _fulfilled > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:854:54) > at self.promiseDispatch.done > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:883:30) > at Promise.promise.promiseDispatch > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:816:13) > at > C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:624:44 > at runSingle > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:137:13) > at flush > (C:\nodejs\apps\pgHello\platforms\android\cordova\node_modules\q\q.js:125:13) > _Note that the error now becomes "Error: TypeError: Cannot read property > 'length' of undefined" instead of "Error: Error". The only difference is > which version of the cordova android platform I use._ > *Replicating with Cordova:* > _I'm including this to demonstrate that the problem is not in phonegap, but > seems to be in the cordova android platform._ > $ cordova create pushTest com.copperfielld.kostizi.pushtest pushTest > Creating a new cordova project. > $ cd pushTest > $ cordova add android@6.2.3 > Using cordova-fetch for cordova-android@6.2.3 > Adding android project... > Creating Cordova project for the Android platform: > Path: platforms\android > Package: com.copperfielld.kostizi.pushtest > Name: pushTest > Activity: MainActivity > Android target: android-25 > Subproject Path: CordovaLib > Android project created with cordova-android@6.2.3 > Installing "cordova-plugin-whitelist" for android > This plugin is only applicable for versions of cordova-android > greater than 4.0. If you have a previous platform version, you do *not* need > this plugin since the whitelist will be built in. > --save flag or autosave detected > Saving android@~6.2.3 into config.xml file ... > $ cordova run android --verbose > No scripts found for hook "before_run". > No scripts found for hook "before_prepare". > Checking config.xml and package.json for saved platforms that haven't been > added to the project > Config.xml and package.json platforms are the same. No pkg.json modification. > Package.json and config.xml platforms are different. Updating config.xml with > most current list of platforms. > PlatformApi successfully found for platform android > Checking config.xml for saved plugins that haven't been added to the project > Checking for any plugins added to the project that have not been installed in > android platform > No differences found between plugins added to project and installed in > android platform. Continuing... > Generating platform-specific config.xml from defaults for android at > C:\nodejs\apps\pushTest\platforms\android\res\xml\config.xml > Merging project's config.xml into platform-specific android config.xml > Merging and updating files from [www, platforms\android\platform_www] to > platforms\android\assets\www > Wrote out android application name "pushTest" to > C:\nodejs\apps\pushTest\platforms\android\res\values\strings.xml > android-versionCode not found in config.xml. Generating a code based on > version in config.xml (1.0.0): 10000 > Wrote out Android package name "com.copperfielld.kostizi.pushtest" to > C:\nodejs\apps\pushTest\platforms\android\src\com\copperfielld\kostizi\pushtest\MainActivity.java > This app does not have launcher icons defined > This app does not have splash screens defined > This app does not have additional resource files defined > Prepared android project successfully > No scripts found for hook "after_prepare". > ANDROID_HOME=c:\android\sdk > JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131 > Error: Cannot read property 'length' of undefined > _Note that there are fewer details about the error, but it's the same message > as before:_ > _Error: Cannot read property 'length' of undefined_ -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org