1. 程式人生 > >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ön

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

 

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

 

不再支援Windows Phone 8.1

我最不喜歡Visual Studio 

2017的一件事是您無法再編譯Windows Phone 8應用程式。只有非常通用的 UWP(通用Windows平臺)應用程式可以編譯和部署,如平臺定位文章中所述:

此版本不支援Windows Store 8.1和8.0以及Windows Phone 8.1和8.0的專案。要維護這些應用程式,請繼續使用Visual Studio 2015。

這意味著隨VS2017提供的UWP 10只能編譯適用於Windows 10和Windows 10 Mobile的應用程式,但不能編譯Windows Phone 8.目前仍有數百萬臺Windows Phone 8.1裝置在使用,因此要保持它們與您之間的良好相容性應用程式將確保您獲得更多使用者。

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

堅持使用Cordova 6.3.1工具集

自VS2017釋出以來,Visual Studio中的Cordova 工具集一直停留在Cordova CLI 6.3.1中,並且未提供進一步的更新。這意味著你會遇到越來越過時的Cordova 6.3.1 CLI,以及舊版本的

cordova-androidcordova-ios工具:

visual studio cordova工具集

VS2017 Cordova 6.3.1工具集。

但是,您可以使用全域性安裝的CLI版本,如Cordova 7.1.0

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日