サーバーに接続して通信する Android アプリケーションがあります。元々、このアプリは minSdk バージョン 8 (Android 2.2) でビルドされており、完全に機能しました。私は 4.03 を実行しているデバイスを持っているので、minSdk 15 バージョンを作成することにしました。これにより、サーバーに接続しようとするたびにアプリがクラッシュしました。
問題の原因を見つけるために、アプリを可能な限り削除しました。問題をソケットを初期化する関数に絞り込みました。この関数を実行しようとすると、アプリケーションがクラッシュします。
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();
}
}