目前,我在Android应用程序中需要本地http文件服务器,因此我决定使用NanoHttpd SimpleWebServer。但是我遇到了这样的异常:
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.InputStream.read(byte[])' on a null object reference
at fi.iki.elonen.SimpleWebServer.<clinit>(SimpleWebServer.java:83)
而崩溃的部分实际上是静态构造函数
static {
mimeTypes();
InputStream stream = SimpleWebServer.class.getResourceAsStream("/LICENSE.txt");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count;
String text;
try {
while ((count = stream.read(buffer)) >= 0) {
bytes.write(buffer, 0, count);
}
text = bytes.toString("UTF-8");
} catch (IOException e) {
text = "unknown";
}
LICENCE = text;
}
显然,库正在尝试加载一些许可证文件,但是失败。因此,不会创建服务器,也不会启动服务器。
有人知道如何克服这个问题吗?提前致谢!
(我使用Android Studio 1.5.1,并通过gradle依赖项
'org.nanohttpd:nanohttpd-webserver:2.2.0'
包含了库) 最佳答案
没有创建接缝InputStream。可能是因为类加载器找不到LICENSE.txt或没有足够的权限。