Visual Studio 2017 and Apache Cordova mobile apps | Andrés Zsögön

原文:Visual Studio 2017 and Apache Cordova mobile apps | Andrés Zsögönhtml

 

如下是使用Microsoft Visual Studio 2017嘗試使用適用於Android,iOS和Windows的HTML,CSS和JS 開發Apache Cordova移動應用程序時可能遇到的一些問題出於這些和其餘緣由,我更喜歡繼續使用Visual Studio 2015,它沒有提到任何問題。
android

 

再也不支持Windows Phone 8.1

我最不喜歡Visual Studio 2017的一件事是您沒法再編譯Windows Phone 8應用程序。只有很是通用的 UWP(通用Windows平臺)應用程序能夠編譯和部署,如平臺定位文章中所述:ios

此版本不支持Windows Store 8.1和8.0以及Windows Phone 8.1和8.0的項目。要維護這些應用程序,請繼續使用Visual Studio 2015。git

這意味着隨VS2017提供的UWP 10只能編譯適用於Windows 10和Windows 10 Mobile的應用程序,但不能編譯Windows Phone 8.目前仍有數百萬臺Windows Phone 8.1設備在使用,所以要保持它們與您之間的良好兼容性應用程序將確保您得到更多用戶。github

使用Visual Studio 2015   和Windows Phone 8.1 SDK,您能夠經過在config.xml設計器中選擇Windows目標版本:Windows 8.1來編譯與Windows Phone 8.1和Windows 10 Mobile兼容的 UWP apache

堅持使用Cordova 6.3.1工具集

自VS2017發佈以來,Visual Studio中的Cordova 工具集一直停留在Cordova CLI 6.3.1中,而且未提供進一步的更新。這意味着你會遇到愈來愈過期的Cordova 6.3.1 CLI,以及舊版本的cordova-androidcordova-ios工具:windows

visual studio cordova工具集

VS2017 Cordova 6.3.1工具集。android-studio

可是,您可使用全局安裝的CLI版本,如Cordova 7.1.0app

2017年視覺工做室的cordova 7.1.0

VS2017 Cordova 7.1.0工具集。工具

這種方法的問題在於,當您增長Cordova CLI和cordova-android版本時,您將開始得到愈來愈多的Visual Studio相關錯誤。例如:

  • 使用Cordova 6.5.0cordova-android 6.3.0時,一切都會完美運行。可是這個版本對於某些插件來講太舊了,好比phonegap-plugin-push
  • 使用Cordova 7.1.0cordova-android 6.3.0時,您能夠構建和部署到設備和模擬器,但VS2017錯誤地報告狀態欄上的Deploy失敗沒什麼大不了的,部署到設備,模擬器和調試實際上工做正常。
  • 使用cordova-android 6.4.0或更高版本時,您的應用程序將不會部署到設備或模擬器這是由於在cordova-android 6.4.0中,APK輸出路徑不幸被更改,致使Visual Studio再也不找到APK並假設構建失敗。關於這個問題的報告已被視爲IDE問題,換句話說,應該更新Visual Studio以解決此問題。你能夠永遠等待一個新的工具集發佈,因此我不會期望它。
  • 每當您使用config.xml設計器中顯示的選擇框更改CLI版本時下次加載項目時可能會忘記該設置,由於config.xml未正確更新。有關處理此錯誤的更多信息,請閱讀下一期。
  • 要使用Cordova 7.1.0爲Android編譯,您可能須要經過從Visual Studio 更改ANDROID_HOME設置來切換到Android SDK API 26 這會引入如下問題:再也不檢測到您的Android模擬器,也沒法部署到模擬器(請參閱本頁下方的詳細問題)。

未保存選定的Cordova工具集

默認狀況下,Visual Studio 2017將使用本身的Cordova 6.3.1工具集建立新的Apache Cordova項目若是將其更改成使用全局安裝的Cordova版本,下次打開項目時會忘記此設置,而且您被邀請轉換項目。

這是由於不管什麼時候更改工具集,config.xml都未正確更新。要在項目中更改Cordova版本,請在「 查看代碼」模式下手動編輯config.xml 以找到:

<VS:toolsetVersion> 6.3.1 </ VS:toolsetVersion> <engine name =「android」spec =「5.2.1」/>

並將其替換爲全球安裝的版本(在本例中爲7.1.0)。還設置了一個較新的cordova-android版本(6.3.0是最後一個適用於Visual Studio的版本,以後Apache Cordova團隊經過更改APK輸出路徑來打破它)。

<VS:toolsetVersion> 7.1.0 </ VS:toolsetVersion> <engine name =「android」spec =「6.3.0」/>

保存config.xml並從新加載項目,將預先選擇全局安裝的版本,不會詢問任何轉換。

您能夠在我在Stackoverflow 上發佈的這個答案中找到有關此問題的更多詳細信息

構建失敗,由於須要更新的Android SDK

當您設法更改Cordova CLI和cordova-android版本時,您可能會遇到與Android SDK(API 25)相關的錯誤。Cordova 7.1.0須要Android SDK 26進行編譯,所以您必須將Visual Studio中ANDROID_HOME設置設置爲外部安裝的Android SDK。您可使用經典的Android SDK Manager獲取和管理已安裝的Android SDK 

android sdk經理

適用於Windows的Android SDK Manager。

此SDK管理器已被埋沒,試圖讓更多開發人員遷移到Android Studio,後者具備內置的SDK管理器,但您仍然能夠在此處獲取它Android Studio的問題在於它的IDE缺少對Apache Cordova應用程序的任何支持,不像Visual Studio提供了輕鬆建立,調試,部署和分發它們所需的全部工具。

更改ANDROID_HOME後沒法部署到模擬器

每當您Tools for Apache Cordova設置中更改ANDROID_HOME路徑(使用較新的Android API進行編譯)時,您可能會注意到Deploy to Emulator選項已消失,而是替換爲安裝Google Android模擬器這可能很是使人沮喪。

Visual Studio ANDROID_HOME路徑

在此處更改Visual Studio 2017 Android SDK路徑會刪除「 部署到模擬器」選項。

不幸的是,將自定義ANDROID_HOME設置爲使用較新的API會破壞Deploy to Google Android Emulator選項並替換它將安裝Google Android Emulators當使用VS2017安裝程序自己Tools for Apache Cordova提供的(愈來愈過期的)Android SDK API 25時,VS2017彷佛只能部署到emulatos 

如何使用我本身的ANDROID_HOME而後部署到模擬器?

若是您堅持更改ANDROID_HOME設置,仍可使用cordova emulate命令手動部署到模擬器

cordova run - emulator

可是,您將沒法使用Visual Studio內置調試工具您仍然可使用Chrome的遠程調試與設備檢查器,但這不會調試非Javascript插件。Visual Studio 2015上不存在此問題,它容許在正確部署到設備和模擬器時使用您本身的ANDROID_HOME設置。

如何使用更新的API手動更新內置API 25文件夾?

那太好了。可是,因爲VS2017安裝程序提供的Android SDK API 25的文件夾結構與Android SDK Manager建立的原始SDK結構很是不一樣,所以您不能簡單地將API 25文件夾的內容替換爲API 26中的內容以解決此問題。問題。嘗試這可能會致使沒法使用的SDK。

與Cordova,Visual Studio或Android仿真器相關的問題

有另外一個問題?添加您的評論

我沒有嘗試過VS2017足夠長的時間來找到全部與Cordova相關的問題。若是您遇到任何其餘問題,請隨時使用本頁Disqus上的評論表單提交。若是我有時間,我會盡力幫助您或調查問題。

全部產品名稱,徽標和品牌均爲其各自全部者的財產。本網站使用的全部公司,產品和服務名稱僅用於識別目的。使用這些名稱,徽標和品牌並不意味着承認。

此條目發佈在Apache CordovaVisual Studio on2018年5月12日

相關文章
相關標籤/搜索