最近打算用夜神模擬器來和本機服務器做一些信息交互的功能,但是服務器搭建好了,用葉神模擬器卻無法訪問。折騰了大半天才發現原來是模擬器的問題。
具體過程如下:
搭建好服務器后,在本機上訪問“http://127.0.0.1:5000/”,可以訪問本機服務器。但是在Android Studio下寫了個簡單的Android程序來訪問“http://127.0.0.1:5000/”時,卻又無法訪問本機服務器。報錯如下所示:
后來經過度娘的幫助,了解到Android底層是Linux內核,Android本身就是一個操作系統;因此,這時我們在模擬器的瀏覽器中輸入的localhost或127.0.0.1所代表的是 Android模擬器(Android虛擬機),而并非是你的電腦。這也是你在模擬器中使用localhost時會報“找不到網頁”的原因。
只需在Android操作系統中,將本地電腦的地址映射為10.0.2.2(大部分模擬器默認的映射地址,在模擬器端訪問此地址就相當于訪問了本機服務器即http://127.0.0.1);因此,只需要將原先的localhost或者127.0.0.1改成10.0.2.2,就可以在模擬器上訪問到本機服務器,但是試過之后發現還是不行。
此時已經無語。。。吃過飯晚后,再經過Google大哥的幫助,總算找到了答案。問題的原因竟然是模擬器的問題。。。
網上有大神專門做了測試,過程如下:
打開本機服務器,然后啟動Android模擬器(在此啟動三臺模擬器作比較,分別是官方AVD、夜神和海馬玩模擬器),打開模擬器上的瀏覽器,然后訪問:http://10.0.2.2:8080/,理論上就可以看到Tomcat。但是結果卻如下所示
夜神無法訪問其他模擬器卻可以。至于這個問題我又去夜神官方找了下答案,發現也有小伙伴遇到這樣的問題,但是目前夜神官方還沒有給出答案。