我遇到问题"在此语言级别不支持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";
}
答案 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