我有一个连接服务器并与服务器通信的Android应用程序。最初的应用程序是使用minSdk版本8(Android 2.2)构建的,它运行得很好。我有一台运行4.03的设备,所以我决定创建一个minSdk 15版本。这导致我的应用程序每次尝试连接到服务器时都会崩溃。
我尽可能地删除了应用程序以找到问题的根源。我将问题缩小到我初始化Socket的函数。每当此函数尝试运行应用程序崩溃时。
如果我将minSdk版本更改为8,它可以完美运行。但它不适用于我尝试过的任何其他版本(10,14,15)。我不知道版本中发生了什么变化,但这似乎很奇怪,这只适用于misSdk 8.什么可能导致这个或什么可以改变?
以下是一些代码:
// Function that seems to cause problems
public void openConnection(){
try{
s = new Socket(InetAddress.getByName("192.168.1.84"),1500);
}catch(IOException e){
e.printStackTrace();
}
}
// Button handler
public void myClickHandler(View view){
switch(view.getId()){
case R.id.ConnectButton:
this.openConnection();
}
}
答案 0 :(得分:1)
我不能肯定地说(发布你的logcat输出!),但我最好的猜测是你试图在UI线程上建立连接并且ICS正在崩溃你的应用程序(因为它应该,因为它试图连接到UI线程上的Web服务器几乎肯定是您的应用程序无法正常运行的保证)。确保使用AsyncTask
或Thread
建立连接。我见过很多开发人员遇到类似问题并且通常与此问题有关。