此语言级别不支持try-with-resources - Android

时间:2014-06-18 16:36:34

标签: android try-with-resources notsupportedexception

我遇到问题"在此语言级别不支持try-with-resources"在以下发布的代码中的android中,我尝试将语言设置为7,但它仍然不断给我相同的示例加上它一直让我可以选择更改为语言7。

public String ReadFile(String fileName) {

    try (BufferedReader br = new BufferedReader(new FileReader(fileName+".txt"))) {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            sb.append(line);
            sb.append(System.lineSeparator());
            line = br.readLine();
        }

        String everything = sb.toString();
        return everything;
    } catch (FileNotFoundException ex) {
        Logger.getLogger(SaveNLoadRank.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(SaveNLoadRank.class.getName()).log(Level.SEVERE, null, ex);
    }
    return "1";
}

2 个答案:

答案 0 :(得分:38)

仅当minSdkVersion设置为19或更高时,才支持

尝试使用资源

由于我怀疑您的应用程序支持的最低API版本为19或更高(2014年6月),这可能是您的问题。

2014年3月发布的SDK工具修订版22.6(see here)中添加了对Java 7语言功能的支持。但是, try-with-resources 不是可以为以前版本的Android引入的功能,因此使用该功能的应用程序必须运行在19+以上,因此minSdkVersion要求。< / p>

<强>更新 您现在可以在任何API中使用try-with-resources。

  

除了上面的Java 8语言功能和API,Android   Studio 3.0及更高版本扩展了对所有资源的try-with-resources的支持   Android API级别。

     

要开始使用受支持的Java 8语言功能,请将Android插件更新为3.0.0(或更高版本)。之后,对于使用Java 8语言功能的每个模块(在其源代码中或通过依赖项),在Project Structure对话框中将Source Compatibility and Target Compatibility更新为1.8,如图2所示(单击File&gt; Project Structure)

https://developer.android.com/studio/write/java8-support.html

答案 1 :(得分:2)

API 19以下不支持它,但据报道它可以在15甚至14上运行:https://code.google.com/p/android/issues/detail?id=73483