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

thi*_*243 23 android 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";
}
Run Code Online (Sandbox Code Playgroud)

Tan*_*.7x 39

只有当您minSdkVersion设置为19或更高时,才支持try-with-resources.

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

2014年3月发布的SDK Tools Revision 22.6中添加了对Java 7语言功能的支持(参见此处).但是,try-with-resources并不是可以为以前版本的Android引入的功能,因此使用该功能的应用程序必须在19+以上运行,因此minSdkVersion需要.

更新 您现在可以在任何API中使用try-with-resources.

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

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

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