Visual Studio Update 1 ,為 Android 專案加入 Java 支援與除錯功能


這篇文章中您可以閱讀到以下資訊:


 Visual Studio 2015 Update 1 RC 持續加入更多特性,適合開發多樣的行動裝置相關應用。而在這次更新之中,主要加入了支援對 Android 專案內的 Java 原始碼進行除錯,以及IntelliSense 現在也能夠作用在 Java 原始碼的編輯與瀏覽上。

這篇文章將向您展示如何使用在 Visual Studio Update 1 內為 Java 新增的功能。

建置 Java 原始碼

在 Visual Studio 2015 RTM 釋出時,早已支援建置 Java 的原始碼,而 ANT 建置系統預設會選擇任何在專案中 ”src” 資料夾內副檔名為”.java”的原始碼來進行編譯。如果您的 Android 專案有包含這些檔案,那麼就可以輕易地使用 Visual Studio 內建的版本控制整合功能來做管理。

下列方式可以讓您加入取得 Android 開發專案:

  • 從基本應用程式範本(在新增專案對話框中,其他語言 > Visual C++ > Cross Platform > Basic Application)中建立一個新的專案。
  • 從 Code Gallery Android C++ 範例庫中取得,有些包含 Java 原始碼。
  • 安裝 Java support extension,就能直接匯入由 Eclipse 建立的 Android 專案。
  • 在這些專案底下的 src 資料夾下放置副檔名為 .java 的檔案。

編輯 Java 原始碼( Update 1 新加入,目前為測試階段)

當您在 Visual Studio 打開副檔名為 .java 的 Java 原始檔時,會注意到編輯器上方會彈出提醒訊息,建議您安裝新的 Visual Studio 對 Java 語言的支援擴充套件。這個提示能夠被關閉,不過我們建議您可以安裝這個擴充套件進行使用,並期盼您能夠提供更多回饋讓我們知道。

注意:您安裝擴充套件後,必須要重新開啟 Visual Studio,之後您會發現在 Java 程式碼內會加上顏色標註,或者語法警告及錯誤顏色標註等提示功能。

安裝這個擴充套件後,在您撰寫 Java 程式碼時,IntelliSense 能夠幫助您做到以下幾點:

  • 成員清單將會顯示目前已經參考 ( import ) 的來源或者程式碼相關成員

 

  • 參數指引將會在您撰寫呼叫函式時提示相關函式傳值

  • 快速提示將會於您將滑鼠游標移動至任何一個合法的程式碼片段時顯示

當您在進行大型專案分析原始碼或者使用第三方提供具有原始碼的函式庫時,若專案原始碼包含的結構允許時,您可以在變數或函式的地方點擊右鍵選擇[移至定義]或者按下 F12,即可快速的移動至該變數或函式所被定義的程式碼。

  

對 Java 程式進行除錯(Update1 新加入)

您可以透過偵錯型別的下拉選單選擇 ” Java Only ”,這樣在下一次執行偵錯程序時就能夠針對 Java 程式碼進行偵錯。

 

如果您想在之後維持專案是針對 Java 偵錯的話,可以在方案總管對您的專案點擊右鍵選擇[屬性],並切換至[偵錯],將其中的[Debugger Type]改為 ” Java Only ” 後套用即可生效。

 

您也可以在 Java 程式碼中設定中斷點,且也可以加入條件式或者設定執行了幾次才啟動中斷點等中斷條件,這樣一來將可以較精確地中斷在您所設定的情況。另外也可將中斷點設定轉變成 TracePoint

 

當一個中斷點觸發後,您將能夠存取幾個除錯視窗供您檢視並追蹤錯誤,例如 Call stackWatch and Locals windows,甚至是 Logcat。

執行序視窗將會顯示多執行序的除錯訊息,包含完整的執行序名稱與相關呼叫的堆疊位置,來幫助您除錯。

在例外狀況視窗中,您可以設定哪一些例外狀況必須要使的除錯程序必須停止。當設定的例外情況發生,除錯程序將會停止在引發該例外的地方,並顯示例外狀況說明對話框,能夠提供您更詳細的例外訊息提示。

另外您也可以使用 DataTips 功能,將特定變數固定在畫面上,讓您能夠更方便的檢視變數內容。

 

以上內容為 Visual Studio 2015 Update 1 針對 Java 語言以及 Android 專案除錯所新增的功能。我們期盼能接收到您嘗試 Update 1 RC 後的相關意見反饋,歡迎利用 MSDN 論壇發問,或是透過微軟社群之星,都將由專家為您解惑

本文翻譯自:Java debugging and language support in Visual Studio for Android

 

Comments (0)

Skip to main content