2011-08-04 9 views
0

IOExceptionタイプのeを原因として次のように新しいIOExceptionに渡そうとしています。これは私に以下のエラー与え1.6環境で1.6より前の奇妙なIOエラー

try { 
    //stuff 
} 
catch (IOException e) { 
    throw new IOException("Some Message", e); 
} 

しかし、1.6で、IOException(String, Throwable)は、このクラスのコンストラクタとして実装され、コンストラクタのIOException(文字列は、IOException)が定義されていません。

私のプロジェクトプロパティのすべてに1.6と書かれていても、私はJava 1.5のようです。私はハードドライブに1.5 JDKをインストールしていません。

+2

これは['' java.io.IOException'](http://developer.android.com/reference/java/io)ですか?/IOException.html)、他のパッケージからの他の 'IOException'はありませんか?また、このコンストラクタはAndroid APIのAPI Level 9 **で導入されました。それ以下のものを使用している場合は、それを使用することはできません。 –

+0

ビルドターゲットを変更してから変更してみることもできますか?時には私の環境がファンキーな動きをして、私はそれをしなくてはなりません。 – Jack

+0

@Joachim Sauerはい私は.. 'import java.io.IOException;' – styler1972

答えて

0

また、このコンストラクタはAndroid APIのAPIレベル9で導入されたことにも注意してください。それ以下のものを使用している場合は、それを使用することはできません。 - Joachim Sauer Aug 4 at 14:44

0

ではなく、あなたのキャッチの内側にこれをやってみてください。

throw new IOException("Some Message", e.getCause()); 
+0

残念ながら、これはエラーを解決しませんでした – styler1972

2

Androind上のJavaバージョンは、わずか1.5の機能を実装しています。あなたはこのようinitCauseメソッドを使用することができるはずです:私は私のプロジェクトの設定で間違ったandroid.jarを参照して

IOException e2 = new IOException("Some message"); 
e2.initCause(e); 
throw e2;