關於如何在Visual Studio上模擬調試安卓的U3D應用

来源:https://www.cnblogs.com/ACDIV/archive/2018/01/01/8159495.html
-Advertisement-
Play Games

正巧最近需要開發一個安卓手機上的Unity3D游戲功能,想著既然要開發麽,當然需要調試。本來的話一些基礎功能是不需要使用模擬模擬器,直接在U3D的開發編輯器上就能調試,不過有一些安卓上才能執行,比如 這種代碼如果直接在U3D的開發編輯器上調試,直接就會返回 因此,我們需要在實體機(安卓手機)或者模擬 ...


 

  正巧最近需要開發一個安卓手機上的Unity3D游戲功能,想著既然要開發麽,當然需要調試。本來的話一些基礎功能是不需要使用模擬模擬器,直接在U3D的開發編輯器上就能調試,不過有一些安卓上才能執行,比如

AndroidJavaClass jc = new AndroidJavaClass("");

 這種代碼如果直接在U3D的開發編輯器上調試,直接就會返回

因此,我們需要在實體機(安卓手機)或者模擬器上調試才能正常執行。

以下全都是我這臺電腦的運行結果,並不代表其他電腦有同樣的效果

我選擇在模擬器上調試,因為使用實體機的話,據說只能使用WIFI,雖然USB調試也可以,不過查了下資料,發現問題挺多的,而WIFI的話速度就慢很多了。

在模擬器的選擇上,我首先選擇了,Android Virtual Device(以下簡稱AVD),在進行了各種配置以後,AVD模擬的安卓U3D應用確實正常運行了,不過AVD給安卓模擬器分配的網路是NAT網路,也就是說,安卓模擬器裡面跑的IP是重新分配的虛擬IP,而如果我們用127.0.0.1來attach是沒法子訪問到模擬器內部埠,那麼辦法只有一個,使用redir指令來重定向,把模擬器分配給安卓應用的埠重新分配出來給PC訪問,當然,這個方法本身是沒啥問題的話,可問題是

這個埠,在你每次啟動新的調試以後,都會變化,也就是說,你每次想要調試,都要重新redir一個新的埠才行,這個就蛋疼了啊

要解決這個問題,我們只能把NAT網路改成橋接網路才行,可惜我找遍AVD也找不到能夠把網路連接方式改成橋接的設置,於是作罷,只能放棄AVD

後來,我把目光轉向Visual Studio Emulator for Android,這是VS自帶的安卓模擬器,基於Hyper-v虛擬機運行,在虛擬機的網路介質設置界面,可以把網路改成橋接模式,非常的Nice,可惜在我把我這邊的項目導入模擬器運行的時候,不管怎麼辦,模擬器一定會崩潰,所以這個辦法至少在我的電腦上只能作罷,也許你們項目可以用這個辦法。

之後我就把目光轉向國內的安卓模擬器,比如夜神啊,雷電啊之類的,可惜的是,這些安卓模擬器的橋接模式,都不支持Win10系統,至於要我換系統?不存在的。

之後麽,使用了據說是最好的安卓模擬器Geometry ,確實不錯,而且也確實支持修改網路連接方式為橋接,可惜不知道為啥,還是跟上面那個一樣,無法運行我這邊的項目,這次倒不是崩潰,而是應用打開全是空白...沒辦法,只能作罷,不過這個方法在你們的項目上也應該能用。

最後,一氣之下使用了VirtualBox才最終解決問題,下麵就是本文的正題,關於如何在Visual Studio上模擬調試安卓的U3D應用。

在開始之前,需要做一些準備功能

1.下載安卓的x86系統文件,可以是安裝包,也可以去(https://www.osboxes.org/android-x86)下載別人做好的成品虛擬機硬碟,推薦後者,可以少折騰,不過這裡提供的下載包需要從谷歌硬碟上拖下來,所以,是吧。

2.下載虛擬機,這個沒啥好說的話,我用的是Oracle VM VirtualBox,隨便百度下就有下載地址

3.安裝好安卓的SDK包,我使用的是VS安裝器提供的,也可以用就是了

4.如果使用的是VS,需要在VS上面安裝Unity3D的拓展文件

上面最主要的功能做好以後,我們先打開虛擬機配置下

其實也沒啥好說的,把系統設置為Liunx項目,硬碟指向下載來的vdi文件

然後右鍵項目-屬性,在網路選項卡,把連接方式改成橋接網卡,然後啟動虛擬機就行

正常啟動項目以後,按照一般安卓系統的操作方式,記下IP,然後打開命令行控制器

在adb.exe的所在目錄,鍵入

adb connect IP

如果出現connected to IP,就代表本地機器和模擬器連接成功,現在就可以CMD了

接下來,把虛擬機晾一邊(可以的話,設置一下讓安卓系統永不休眠,不然過一會兒不操作,進入休眠模式不好喚醒,只能重啟)

打開Unity3D編輯器,設置下配置

上述框紅的,都是需要設置的,編輯器我使用VS,當然你們也可以用Monodevelop,編輯附加需要勾上,SDK和JDK需要手動指定位置,設置完畢後就可以關了

在Build設置界面,雙擊Android,然後把紅框的都勾上,最後點擊Build And Run

 

會出現一個讓你保存apk文件的地址選擇框,請務必保證保存APK文件的路徑上面沒有出現中文,出現中文文字會導致APK無法安裝到安裝模擬器上.

如果上述工作沒有做錯,點擊保存後,就會進入漫長的連接安卓設備,構建應用,以及發送應用包給安卓模擬器並自動安裝運行等操作

如果一切正常,你就會發現,安卓模擬器已經把應用運行起來,等待你操作了,

現在,讓我們啟動VS

隨便在哪個指令上下斷點(不下斷點調試的時候斷不下來)

如果VS安裝了U3D的拓展組件,這裡就應該有這個選項

然後你會發現,模擬器裡面運行的應用,以及在這裡顯示了,不用想,雙擊點開就是

如果上述操作都沒問題,你會發現,VS直接進入了調試模式

如果出現

這種非調試模式,就是連接不成功

 然後我們隨便在應用上面做一些我們預定要調試的操作

看VS已經正常的斷下來了,並且在自動視窗,把當前的指令變數都展示出來,這樣子調試就方便多了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考地址:https://help.aliyun.com/knowledge_detail/41817.html PS:目前恢復只支持 Linux 下進行。Linux下恢復的數據文件,無論 Windows、Linux 操作系統,MySQL 都可以正常使用 1、概述和軟體說明 1.1 概述 RDS M ...
  • VMware相關服務 啟動腳本: VMwareStart.bat 關閉相關服務腳本: VMwareStop.bat ...
  • 一、下載安裝 Notepad++ 1、下載 Notepad++ : https://pan.baidu.com/s/1o7VrS4y 密碼 : ck8a 2、安裝 Notepad++ 2.1、勾選所有 2.2勾選所有 二、下載安裝 NppFTP 插件 1、下載 NppFTP github 下載 : ...
  • pstack命令可顯示每個進程的棧跟蹤,pstack $pid即可,pstack命令須由$pid進程的屬主或者root運行。 這次出現cpu占比100%的情況,但看memory占比,並無異常,懷疑是某個地方死迴圈了。經同事提醒,用pstack命令查看相關進程,通過運行多次pstack,發現代碼棧總是 ...
  • 關於HSQLDB資料庫的創建,本文不做過多描述,可以在百度上搜索一下,有許多。 對於訪問已存在的庫文件,網上找了半天,沒有整理的很清楚的參考資料,現將自己的操作過程整理如下,以供參考。 1、先下載一個HSQLDB客戶端,如HsqlManager,解壓在某一個路徑下,如下圖所示: 2、將hsqldb. ...
  • 參考 http://hbase.apache.org/book.html#_architecture Architecture 65. Overview 65.1. NoSQL? HBase是一種"NoSQL"資料庫。“NoSQL”一般指的是非關係型資料庫,我們知道,關係型資料庫支持SQL,也就是說 ...
  • 🎉新年賀詞🎉 2017年即將過去,新年的鐘聲即將敲響。在這辭舊迎新的美好時刻,我向全國各族人民,向香港特別行政區同胞、澳門特別行政區同胞,向臺灣同胞和海外僑胞,向工作在一線的運維工程師們,向為開源事業做出貢獻的朋友們,向世界各國各地區的朋友們,致以新年的祝福! 今天是2017的最後一天,在這樣一 ...
  • 引言 在之前的大數據學習系列中,搭建了Hadoop+Spark+HBase+Hive 環境以及一些測試。其實要說的話,我開始學習大數據的時候,搭建的就是集群,並不是單機模式和偽分散式。至於為什麼先寫單機的搭建,是因為作為個人學習的話,單機已足以,好吧,說實話是自己的電腦不行,使用虛擬機實在太卡了。。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...