簡體   English   中英

Cordova Android構建錯誤“無法讀取未定義的屬性'長度'

[英]Cordova Android build error “Cannot read property 'length' of undefined”

我有一個較舊的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 android@6.1.2 --save

如果這不能直接使用,請嘗試以下方法:

  1. 首先刪除android平台:

     cordova platform remove android 
  2. 添加Android版本6.1.2:

     cordova platform add android@6.1.2 
  3. 構建Android:

     cordova build android 

以下是我在上面(Mac上)之前采取的一些額外步驟,只是為了確保:

  1. 下載最新的JDK並安裝。

  2. 以這種方式添加JAVA_HOME:

     echo export "JAVA_HOME=\\$(/usr/libexec/java_home)" >> ~/.bash_profile 
  3. 重啟shell(CMD + Q並再次打開)

  4. 確保echo $JAVA_HOME等於Android Studio - >文件 - >項目結構 - > JDK位置

對我來說,這是以下路徑和版本:

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

  1. 更新Android Studio和所有SDK包

  2. 更新npm

     npm update -g 

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

sudo npm update -g --unsafe-perm=true
  1. 更新Cordova

     npm update -g cordova 

如果所有這些對您不起作用而您別無選擇,我建議您嘗試將Cordova降級到版本6.4.0:

npm update -g cordova@6.4.0

您可以使用降級cordova cli

npm install -g cordova@6.4.0

並使用give命令構建項目

ionic cordova build android

無需添加平台,它會自動添加。 如果要求更新cordova cli,請選擇no

通過以下方式解決了錯誤:大家好, 在此輸入圖像描述 已解決的問題,運行cordova運行android通過命令提示符為cordova項目附加問題截圖。 要解決此問題,請刪除高級系統設置下的所有環境變量。 卸載java並重新安裝,下載舊的sdk工具以避免現在提示eclipse。

在用戶變量下添加了JAVA_HOME = C:\\ Program Files \\ Java \\ jdk1.8.0_131

在系統變量ANDROD_HOME = C:\\ cordova \\ android-sdk Path = C:\\ Program Files \\ Android \\ Android Studio2 \\ gradle \\ gradle-3.2 \\ bin \\;%JAVA_HOME%\\ bin以避免錯誤:未找到已安裝的構建工具。 安裝Android構建工具版本19.1.0或更高版本。 問題現在解決了😊

問題是我的gradle版本是2.1,Cordova想要3.2。 更新Android Studio(它是2.1)並確保環境變量是最新的是讓它再次運行的主要技巧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM