2017-04-03 23 views
15

我有使用離子/科爾多瓦項目:科爾多瓦錯誤 - getFileResources不是一個函數

[email protected] 
[email protected] 
cordova cli 6.4.0 
ionic 1.3.3 

當我嘗試添加了Android平臺,我得到下面的輸出

================ 

$ ionic platform add [email protected] 

Adding android project... 


Creating Cordova project for the Android platform: 

    Path: platforms/android 
    Package: com.ionicframework.name 
    Name: name 
    Activity: MainActivity 
    Android target: android-25 

Subproject Path: CordovaLib 

Android project created with [email protected] 

Error: cordovaProject.projectConfig.getFileResources is not a function

+0

無法重現此錯誤,請提供最少的示例,以便在此錯誤重現的位置? 你如何運行你的應用程序,有堆棧跟蹤這個錯誤? – Bob

+0

嗨@Bob,我已經更新了我的問題以顯示我得到的反饋,因爲它似乎在添加平臺時已經發生。沒有其他反饋,並且使用--stacktrace運行命令不會產生任何其他日誌。 – IonicBurger

+0

我有任何想法相同的問題? – Microsmsm

回答

29

看來,這個問題是關係到[email protected]的錯誤證實這裏:https://issues.apache.org/jira/browse/CB-12633

我現在已經將我的系統更新到[email protected][email protected],它似乎工作正常。

更新與的科爾多瓦CLI版本6:

npm install -g [email protected] 

,然後添加科爾多瓦 - 機器人的正確版本

cordova platform add [email protected] 

沒有直接關係這一問題,但一旦我得到它的工作,當我嘗試構建我的應用程序時,我的系統確實抱怨沒有設置gradle路徑,所以我按照以下步驟操作:https://gradle.org/install#with-homebrew,現在全部都成功構建。

+0

你嘗試更新到最新的科爾多瓦? – Microsmsm

+0

@Microsmsm - 我相信6.2.0是現在的最新版本,雖然我看到了6.2.1,但看起來它還沒有完全發佈。以前的版本6.1.2似乎仍然工作。如果您運行離子平臺rm android &&離子平臺添加[email protected],它應該暫時工作。 – IonicBurger

+0

6.2.1現已發佈 – jcesarmobile

8

更新科爾多瓦

npm install -g cordova 

,然後嘗試添加平臺或如果與科爾多瓦新版本的任何問題,那麼請使用以下

沒有與科爾多瓦版本6.4.0和Android 6.2.1的一個問題。所以,請嘗試下面的兼容版本

科爾多瓦的版本必須是6.4.0

npm install -g [email protected] 

在您的項目

cordova platform add [email protected] 

ionic platform add [email protected] 
+1

這會將用戶更新爲cordova @ 7(因爲它是最新的),所以最好建議npm install -g cordova @ 6。我相信科爾多瓦@ 7引入了一些其他問題,所以只是要澄清這一點。 – IonicBurger

+0

不要告訴人們使用sudo來安裝東西,這會產生更多問題。如果你不能安裝東西沒有sudo搜索如何擺脫它,但不要使用sudo – jcesarmobile

+0

@jcesarmobile - 使用sudo是非常標準的,與安裝軟件之前提示許可的windows沒什麼不同。這是NPM還是Cordova/Ionic特定問題?謝謝 – JSON

2

更新安裝Android科爾多瓦@ 6.5.0沒有工作 - 我得到錯誤,找不到此版本

而是恢復到[email protected]沒有工作

cordova platform update [email protected] --save 
+3

你正在混淆科爾多瓦版本和平臺版本,不幸的是它們有時看起來一樣。 – purplecabbage

2

什麼就做什麼@IonicBurger上面已經說。 還要確保對於基於Cordova的項目,每個Cordova版本都對安裝的SDK和安裝的Android構建工具有特定的依賴關係。

我目前正在使用Ionic 3,並面臨同樣的問題。

  • 確保科爾多瓦是最新的:NPM我科爾多瓦-g將做的工作。注意通過檢查cordova -v安裝了哪個版本的cordova。之後,確保你已經安裝了離子本機;這通常帶有離子安裝,但它不會傷害到安裝在此再次與本地NPM 我離子本地--save

  • 查看所有可用的平臺:離子科爾多瓦平臺列表。一些插件如相機,媒體等有非常具體的科爾多瓦要求(請參考here

  • 當您安裝插件時,您可能會遇到此類錯誤:'插件不支持此項目的cordova-android版本。 cordova-android:6.1.2,失敗的版本要求:> = 6.3.0 跳過android''的'cordova-plugin-camera'。沒關係。這可以通過上述兩個步驟來解決。最重要的是要記住這一點:確保你有最新的Android構建工具SDK安裝。 請參看下面的圖片瞭解更多細節: enter image description here

請注意,這個答案最適合運行Windows環境。