目前,我在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或没有足够的权限。

10-05 19:14