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

Cordova Android构建错误“;无法读取属性';长度';“未定义”的定义;,android,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 plat

我有一个旧科尔多瓦项目,我正在更新。作为这个过程的一部分,我删除了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
这在我删除平台之前就已经起作用了,所以我猜是一个bug或者一个配置文件改变了


这里有一个类似的问题:

您可以使用

npm install -g cordova@6.4.0
并使用give命令构建项目

ionic cordova build android
不需要添加平台,它会自动添加。
如果它要求更新cordova cli,则选择“否”

通过以下方式解决错误: 大家好, 解决了运行cordova run android的问题,通过cordova项目附加问题屏幕截图的命令提示符。 要解决此问题,请删除“高级系统设置”下的所有环境变量。 卸载java并再次安装,下载旧的sdk工具以避免立即提示eclipse

在用户变量下添加 JAVA\u HOME=C:\Program Files\JAVA\jdk1.8.0\u 131

欠系统变量 ANDROD_HOME=C:\cordova\android sdk Path=C:\Program Files\Android\Android Studio2\gradle\gradle-3.2\bin\;%JAVA\u HOME%\bin以避免错误: 未找到已安装的生成工具。安装Android构建工具版本19.1.0或更高版本。
问题现在解决了问题是我的gradle版本是2.1,Cordova想要3.2。更新Android Studio(当时是2.1版)并确保环境变量是最新的,这是使其重新工作的主要技巧。

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

cordova platform update android@6.1.2 --save
如果第一手就不起作用,请尝试以下方法:

  • 首先删除android平台:

    cordova platform remove android
    
  • 添加Android版本6.1.2:

    cordova platform add android@6.1.2
    
  • 构建Android:

    cordova build android
    
  • 以下是我在上面(Mac上)之前采取的一些额外步骤,以确保:

  • 下载最新的JDK并安装

  • 通过以下方式添加JAVA_主页:

    echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile
    
  • 重新启动外壳(CMD+Q并再次打开)

  • 确保echo$JAVA_HOME等于安卓工作室->文件->项目结构->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
    
  • 更新科尔多瓦

    npm update -g cordova
    
  • 如果所有这些都不适用于您,您别无选择,我建议您尝试将Cordova降级至6.4.0版:

    npm update -g cordova@6.4.0
    

    你能尝试添加一个新的barebone cordova项目并尝试构建android平台吗?是的,这会给出相同的结果。你能发布你的config.xml吗?面临同样的问题。在我的结尾,面对这个错误> CORDOVA需求检查结果为Android:java JDK:安装1.8. Android SDK:安装真Gradle:未安装的不能读取属性“长度”的未定义的我为空白项目工作。我没有使用离子,所以额外的是不必要的建设。我将调查是否需要提出错误报告。