我遇到类似于this one的问题,但java.util.Scanner
除外。我有这种静态方法:
public static void close(final Closeable c) {
if(c != null) {
Log.debug(TAG, "instance of " + c.getClass().getName());
try {
c.close();
} catch (IOException e) {
// ignore
}
}
}
在API 15上传递Scanner
时,它崩溃如下:
08-29 20:33:42.979: E/AndroidRuntime(2245): FATAL EXCEPTION: main
08-29 20:33:42.979: E/AndroidRuntime(2245): java.lang.IncompatibleClassChangeError: interface not implemented
08-29 20:33:42.979: E/AndroidRuntime(2245): at com.mycompany.myapp.IOUtil.close(IOUtil.java:36)
[more lines omitted]
The docs说即使您将文档API级别设置为低于15,Scanner
也会实现Closeable
。这可能是特定于供应商的问题吗?我只有一个API 15设备可供测试,而且它与API 19之间没有任何关系,它工作正常。
答案 0 :(得分:1)
自KitKat以来,扫描仪实现了可关闭
你可以在这里查看
答案 1 :(得分:0)
不能直接回答我的问题,但根据Derek Fung的回答,我的brew install findutils
方法现在看起来像这样:
close()
反射代码已执行,似乎在API 15上正常工作。