2011-07-21 57 views
6

Đây là dòng cmdCần giúp đỡ với Emulator Mạng Android

"C:\Progra~2\Android\android-sdk\tools\emulator.exe" -avd Touch -netspeed full -netdelay none -http-proxy localhost:3128 -debug-proxy 

đây là giao diện điều khiển ra khi tôi cố gắng để mở google.com từ giả lập:

server name 'localhost' resolved to 127.0.0.1:3128 
proxy_http_setup: creating http proxy service connecting to: localhost:3128 
server name 'localhost' resolved to 127.0.0.1:3128 
proxy_http_setup: creating HTTP Proxy Service Footer is (len=2): 
' 
' 
http_service_connect: trying to connect to (null) 
http_service_connect: using HTTP rewriter 
tcp:(null)(880): connecting 
tcp:(null)(880): connected to http proxy, sending header 
tcp:(null)(880): sending 27 bytes: 
>> 43 4f 4e 4e 45 43 54 20 28 6e 75 6c 6c 29 20 48 CONNECT (null) H 
>> 54 54 50 2f 31 2e 31 0d 0a 0d 0a     TTP/1.1.... 

tcp:(null)(880): header sent, receiving first answer line 
tcp:(null)(880): received 'HTTP/1.0 400 Bad Request' 
tcp:(null)(880): connection refused, error=400 
http_service_connect: trying to connect to (null) 
http_service_connect: using HTTP rewriter 
tcp:(null)(888): connecting 

Đây là ngoại lệ từ Wiktionary dụ gỡ lỗi

Caused by: java.net.ConnectException: en.wiktionary.org/91.198.174.232:80 - Connection refused 

Giới thiệu về proxy của tôi: nó nằm trên máy cục bộ của tôi và được định cấu hình để định tuyến thông qua gốc proxy (với auth). Điều này hoạt động tốt với trình tải SDK/trình duyệt Android/IntelliJ, v.v., nhưng mạng giả lập không hoạt động.

Các nhầm lẫn chính là

tcp:(null) 

Bất kỳ lời đề nghị?

+0

Chúng tôi đang gặp sự cố tương tự. Nó dường như đã bắt đầu khi chúng tôi cập nhật lên Android SDK 12. – Daddyboy

Trả lời

0

Vì bạn đang đề cập đến máy chủ cục bộ trên hệ thống của mình từ trình giả lập Android thì bạn phải sử dụng http://10.0.2.2:8080/. Điều này là do bộ giả lập Android chạy bên trong một máy ảo, và do đó, tại đây 127.0.0.1 hoặc localhost sẽ là địa chỉ loopback của trình giả lập. Ngoài ra, bạn không cần phải đặt -netspeed full -netdelay none vì thuộc tính được đặt thành các giá trị đó theo mặc định. Hãy xem this để biết thêm thông tin về Mạng giả lập.

EDIT:

Bạn thay localhost với địa chỉ khác tùy thuộc vào tình hình của bạn. Nếu nó là một địa chỉ Router/gateway, thì bạn thay thế nó bằng 10.0.2.1. Nếu đó là bí danh Đặc biệt đối với giao diện vòng lặp máy chủ lưu trữ của bạn (ví dụ: 127.0.0.1 trên máy phát triển của bạn), thì bạn thay thế bằng 10.0.2.2. Nếu nó là một máy chủ DNS đầu tiên, sau đó bạn thay thế nó bằng 10.0.2.3. Nếu đó là máy chủ DNS tùy chọn thứ hai, thứ ba và thứ tư thì bạn thay thế bằng 10.0.2.4/10.0.2.5/10.0.2.6. Nếu đó là giao diện mạng/ethernet của riêng thiết bị, sau đó bạn thay thế nó bằng 10.0.2.15. Nếu đó là giao diện loopback của riêng thiết bị, sau đó bạn thay thế nó bằng 127.0.0.1. Ngoài ra, địa chỉ 127.0.0.1 trên máy phát triển của bạn tương ứng với giao diện loopback của trình mô phỏng vì vậy nếu bạn muốn truy cập các dịch vụ đang chạy trên giao diện loopback của máy phát triển, bạn nên sử dụng địa chỉ đặc biệt 10.0.2.2. Nhấp vào here để biết thêm thông tin về điều này.

+0

Điều đó có thể không có liên quan trong trường hợp này, vì có vẻ như tham chiếu đến 'localhost' nằm trong phần mềm máy chủ chẳng hạn như trình mô phỏng, chứ không phải phần mềm android chạy trong thiết bị mô phỏng . –

+0

Có địa chỉ khác mà bạn có thể đặt tùy thuộc vào tình huống, –

+0

Những địa chỉ đặc biệt này chỉ có ý nghĩa trong trình mô phỏng, nhưng tùy chọn dòng lệnh dành cho chính chương trình giả lập, hiển thị giao diện của máy tính của mạng chứ không phải android giả lập thiết bị chạy bên trong trình mô phỏng và thấy mạng mô phỏng đặc biệt này. Thật vậy, một lựa chọn là để cho nó chọn proxy lên từ một biến môi trường chung mà không có "kiến thức" của internals mạng giả lập Android ở tất cả. –

2

Có một loạt các sự cố được ghi với hỗ trợ proxy trong trình mô phỏng, đặc biệt là đối với các phiên bản gần đây trên Windows. Xem các báo cáo lỗi ở đây:

http://code.google.com/p/android/issues/detail?id=5508&q=emulator%20proxy&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

Có một số cách giải quyết ở đó mà có thể giúp đỡ, như thiết lập proxy trong các thiết lập mạng thay vì cho các giả lập như một toàn thể gợi ý.

1

Tôi gặp sự cố tương tự (Mac Os X - Công cụ SDK Android 12). Đây là các nhật ký của tôi từ logcat:

08-04 15: 33: 41.576: INFO/java.net.Socket (256): www.google.com/209.85.148.104(80): java.net.ConnectException : www.google.com/209.85.148.104: 80 - Kết nối từ chối

tôi sử dụng mực như proxy và các bản ghi là:

1312464815,525 0 172.16.1.1 TCP_DENIED/400 1587 CONNECT: 0 - NONE/- text/html

Dường như một cái gì đó bị mất ...

Tôi cũng nhận thấy trình giả lập cố gắng sử dụng dns của tôi trong một yêu cầu.

Các vấn đề liên quan