0

我有一个与服务器连接并通信的 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();
    }
}
4

1 回答 1

1

我不能肯定地说(发布你的 logcat 输出!),但我最好的猜测是你正试图在 UI 线程上建立连接,而 ICS 正在使你的应用程序崩溃(因为它应该是因为尝试连接到网络UI 线程上的服务器几乎可以肯定您的应用程序将无法正常运行)。确保您使用AsyncTask或 进行连接Thread。我见过很多有类似问题的开发人员,通常与这个问题有关。

于 2012-04-03T23:07:22.840 回答