2011-08-04 52 views
0

我试图通过IOException类型的e作为新的IOException中的原因,如下所示。在1.6环境下出现奇怪的IOException 1.6错误

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

这给了我下面的错误:

构造IOException异常(字符串,IOException异常)是不确定的

然而,在1.6,IOException(String, Throwable)实现为这个类的构造函数。

这就像我在Java 1.5中,即使我的项目属性中的所有内容都是1.6!我的硬盘上甚至没有安装1.5 JDK!

+2

你确定**这是一个['java.io.IOException'](http://developer.android.com/reference/java/io /IOException.html)而不是另一个包中的其他'IOException'?另请注意,此构造函数是在API API Level 9 **的Android API中引入的。如果您使用低于此值的任何内容,那么您将无法使用它。 –

+0

也许尝试更改您的构建目标,然后将其更改回来?有时候我的环境表现时髦,我必须这样做。 – Jack

+0

@Joachim Sauer是的,我是..'import java.io.IOException;' – styler1972

回答

0

我在我的项目设置引用不正确的android.jar。

另请注意,此构造函数是在API级别9的Android API中引入的。如果您使用的是低于此级别的任何内容,那么您将无法使用它。 - Joachim Sauer 8月4日14:44

0

尝试这样做,你钓到的鱼,而不是内部:

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

不幸的是,这并没有解决这个错误 – styler1972

2

上Androind Java版本仅实现1.5功能。您应该能够使用initCause方法是这样的:

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