Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
此语言级别不支持试用资源-Android_Android_Try With Resources_Notsupportedexception - Fatal编程技术网

此语言级别不支持试用资源-Android

此语言级别不支持试用资源-Android,android,try-with-resources,notsupportedexception,Android,Try With Resources,Notsupportedexception,我在安卓系统中遇到了一个问题,在下面发布的代码中,我试图将语言设置为7,但它仍然给我相同的示例,并且它一直给我更改为语言7的选项 public String ReadFile(String fileName) { try (BufferedReader br = new BufferedReader(new FileReader(fileName+".txt"))) { StringBuilder sb = new StringBuilder(); St

我在安卓系统中遇到了一个问题,在下面发布的代码中,我试图将语言设置为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";
}
仅当您的
minSdkVersion
设置为19或更高时,才支持使用资源进行尝试

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

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

更新 现在,您可以将try with资源与任何API一起使用

除了上面的Java8语言特性和API之外,Android Studio 3.0及更高版本将对try with resources的支持扩展到所有用户 Android API级别

要开始使用支持的Java8语言功能,请将Android插件更新为3.0.0(或更高版本)。之后,对于使用Java 8语言特性的每个模块(在其源代码中或通过依赖项),在项目结构对话框中将源兼容性和目标兼容性更新为1.8,如图2所示(单击文件>项目结构)


API 19下不支持它,但据报道它在15甚至14上都能工作:

阅读这篇文章:,其中解释说,
尝试使用资源需要minSdkVersion 19
可能重复@user3272243-不幸的是,你需要10分钟的时间。否则,您的应用程序将在不支持try-with-resources的设备上可用。我可以通过制作较小部分的try-catch来修复它,但是谢谢你的帮助:)+1用于更新-我知道当我的外部libs使用try with resources时发生了一些奇怪的事情,但是Andriod studio不允许我在我的应用程序中使用它。尽管如此,我还是同意@JemshitIskenderov的观点——您选择支持的API版本是您自己的决定,而不是“问题”。我很好奇这个支持是如何实现的,所以研究了一下并写了一篇文章,展示了dx/d8 desugaring是如何工作的。FWIW运行Android Studio 3.6,它一直要求在min SDK设置为14时使用try with resources!我不得不使用“suppress for statement”。非常恼人和危险,因为在任何低于19的Android上使用资源试用都会崩溃!