微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cordova Android构建错误“无法读取未定义的属性’长度’

我有一个较旧的cordova项目,我正在更新.作为这个过程的一部分,我删除android平台并对其进行了读取.

现在,当我尝试构建项目时,我收到以下错误

C:\App>cordova build android --verbose
No scripts found for hook "before_build".
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:\App\platforms\android\res\xml\config.xml
Merging project's config.xml into platform-specific android config.xml
Found "merges/android" folder. copying its contents into the android project.
Merging and updating files from [www, platforms\android\platform_www, merges\android] to platforms\android\assets\www
Wrote out android application name "App" to C:\App\platforms\android\res\values\strings.xml
android-versionCode not found in config.xml. Generating a code based on version in config.xml (1.0.20): 10020
Wrote out Android package name "com.nge.app" to C:\App\platforms\android\src\com\nge\bca\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".
No scripts found for hook "before_compile".
ANDROID_HOME=C:\Android\sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_40
Error: Cannot read property 'length' of undefined

这在我删除平台之前确实有效,因此我猜测它是一个错误配置文件发生了变化.

这里有一个类似的问题:https://pt.stackoverflow.com/questions/219442/cordova-build-android-error-cannot-read-property-length-of-undefined

解决方法:

我通过将Android降级到版本6.1.2找到了另一个解决方案,因为这里的建议(以及各种论坛上的许多其他建议,如重新安装插件等)对我来说不起作用:

cordova platform update [email protected] --save

如果这不能直接使用,请尝试以下方法

>首先删除android平台:

cordova platform remove android

>添加Android版本6.1.2:

cordova platform add [email protected]

>构建Android:

cordova build android

以下是我在上面(Mac上)之前采取的一些额外步骤,只是为了确保:

>下载最新的JDK并安装.
>以这种方式添加JAVA_HOME:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

>重启shell(CMD Q并再次打开)
>确保echo $JAVA_HOME等于Android Studio – >档案 – >项目结构 – > JDK位置

对我来说,这是以下路径和版本:

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

>更新Android Studio和所有SDK包
>更新npm

npm update -g

注意:在OS X 10.11 El Capitan或更高版本上,运行:

sudo npm update -g --unsafe-perm=true

>更新Cordova

npm update -g cordova

如果所有这些对您不起作用而您别无选择,我建议您尝试将Cordova降级到版本6.4.0:

npm update -g [email protected]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐