很多天之前就安裝了visual studio community 2015,今天閑著麽事想試一下Apache Cordova,用它來開發跨平臺App。在這之前需要配置N多東西,這裡找到了一篇MS官方文章:配置 Visual Studio Tools for Apache Cordova。看著這片文章
很多天之前就安裝了visual studio community 2015,今天閑著麽事想試一下Apache Cordova,用它來開發跨平臺App。在這之前需要配置N多東西,這裡找到了一篇MS官方文章:配置 Visual Studio Tools for Apache Cordova。看著這片文章開始一個個安裝,nodejs、chrome、Git、Apache Ant、Oracle Java、Android SDK等,然後又是配置環境變數。最後呢,我們可以使用VS自帶的檢測工具來檢測一下依賴環境是否正確安裝和查看環境變數設置,如下圖:
這樣的檢測結果讓我很鬱悶,自己明明安裝了Node.JS了啊!並且是32位的。難道是安裝了最新版的(v5.7),無語啊!還有就是Android程式包,不很明白他說的到底是哪一個,反正已經安裝了很多,如下圖:
如果還需要安裝Android SDK相關的其他東西可以去這裡下載:AndroidDevTools,我就在這裡下載的。我把檢測出來的幾個問題忽略了,接下來我就創建了一個Apache Cordova 空白項目,然後就是激動的調試了。拿來數據線,鏈接上手機(當然不要忘記打開“開發者模式”),然後選中“設備”,點擊調試……悲劇的事情發生了,部署程式失敗!原因:無法啟動adb.exe。我當時就蒙了!在Android原生開發中這種問題常有,說是5037埠被其他的程式占用了,我就試了一下:netstat -ano|findstr 5037 沒有找到啊!接著我試著輸入adb start-server 可以啟動成功啊,如下圖:
不知道怎麼辦了,難道真的是上面檢測的問題,這個問題弄得我很鬱悶!最後發現adb 還可以檢測連接到的Android設備,我就試了一下:adb devices 還真沒有發現設備。這是怎麼回事兒,電腦可以發現手機的機身存儲和SD卡啊!後來,我便找來了我的最古老的Android手機——三星i559試了一下,沒問題,找到了,如下圖:
哎!瞧瞧人家,這麼老的手機都可以,就是系統有點老(2.3)、記憶體是有點小(256MB)……難道我的魅藍note2就不行,其實我找了一種間接的解決方案,就是電腦和手機都安裝360手機助手(我的同學說豌豆莢也可以),安裝之後就可以了,也部署成功了,但是卸載之後就不行了。最後我問了一下我搞Android開發的同學,他說應該是驅動的問題,這兩個驅動(?android驅動和?存儲驅動)應該是兩碼事兒,並給了我一篇文章:adb devices 找不到設備怎麼辦 當我看到“adb_usb.ini” 這幾個字的時候我眼前一亮,因為我看見過它。其實這篇經驗說的很清楚關鍵是找到“硬體ID”,按照他的說法先找到“ADB Interface” ,雙擊進入“ADB Interface 屬性”,接著選中“詳細信息”,最後在屬性下拉框中選中“硬體ID”,我的魅藍note2是 2a45,如下圖:
不同的電腦“ADB Interface”應該在不同的地方,我的(win10)和百度經驗就不在一個地方,但是目的只有一個,就是“ADB Interface”,最後按照經驗上說的在指定的路徑創建或者修改adb_usb.ini文件,因為我的電腦中沒有這個文件,所以就直接創建了一個,然後輸入“0x2a45”保存。再次檢測 就沒有問題了,如下圖:
還有就是在說說adb_usb.ini這個文件。魅藍note2在連接電腦的時候有一個這樣的選項“內置光碟”,如下圖:
選中他之後,”我的電腦“是這樣的,多了一個“CD驅動器”:
點開之後,在“I:\USB Reference Manual\簡體\ADB_參考說明書.txt”中有關於“adb_usb.ini”的介紹:
二、Windows XP中文環境
1. 建立或修改C:\Documents and Settings\<你的用戶名>\.android\adb_usb.ini文件,在該文件中添加一行文本,內容是0x2a45。
2. 檢查ADB設備是否找到(命令行程式中)
adb kill-server
adb devices
三、Windows 7中文環境
1. 建立或修改C:\用戶\<你的用戶名>\.android\adb_usb.ini文件,在該文件中添加一行文本,內容是0x2a45。
2. 檢查ADB設備是否找到(命令行程式中)
adb kill-server
adb devices
哎!其實早就註意到他了,就是沒有重視,所以這裡特別提一下,最後附上一張安裝成功的截圖來結束這篇文章。