2017-01-14 2 views
1

Android приложение работает на эмулятореЯ не могу подключиться к серверу! Зачем?

Мой MainActivity:

public class MainActivity extends AppCompatActivity { 

    LoginController loginCtr; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     loginCtr = new LoginController(); 

     final Button button = (Button) findViewById(R.id.loginButton); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       login(); 
      } 
     }); 
    } 

    private void login() 
    { 
     try { 
      System.out.println("Check connection!"); 

      Socket s = new Socket("127.0.0.1", 9010); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Мои AndroidManifest.xml содержат:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 

Мой сервер работает на LocalMachine

Я проверил 127.0.0.1 и 10.0 .2.2 в приложении для Android

+1

Откуда вы знаете, что это не работает? Что должно было случиться? Что происходит вместо этого? Вы получаете сообщения об ошибках? – giusti

+0

Возможный дубликат [Как я могу получить доступ к моему локальному хосту с моего устройства Android?] (Http://stackoverflow.com/questions/4779963/how-can-i-access-my-localhost-from-my-android-device) –

+0

Ваш сервер не работает на вашем телефоне с IP 127.0.0.1 –

ответ

0

Используйте номер http://10.0.2.2:8080/, где 8080 - номер вашего порта. Если вы просто попробуете 10.0.2.2, возможно, это не сработает. или создайте новый экземпляр эмулятора с помощью AVD-менеджера и попробуйте его использовать. Foe genymotion будет 10.0.3.2

Смежные вопросы