InputStream始终返回nullpointerexception SentenceModel model=null; InputStream modelIn=null; AssetManager=context.getAssets(); 试一试{ modelIn=assManager.open(“en sent.bin”); model=新句子model(modelIn); }捕获(IOE异常){ e、 printStackTrace(); }最后{ if(modelIn!=null){ 试一试{ modelIn.close(); }捕获(IOE异常){ e、 printStackTrace(); } } } //初始化句子检测器 SentenceDetectorME sentenceDetector=新的SentenceDetectorME(型号); //堆栈跟踪 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:java.io.FileNotFoundException:en-sent.bin 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:位于android.content.res.AssetManager.openAsset(本机方法) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:位于android.content.res.AssetManager.open(AssetManager.java:313) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:位于android.content.res.AssetManager.open(AssetManager.java:287) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:com.gigstudios.newsummary.WordCounter.make句子(WordCounter.java:35) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:com.gigstudios.newsummary.Article.(Article.java:19) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:在com.gigstudios.newsummary.ArticleReceiver.receiveNewsArticles(ArticleReceiver.java:87) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:com.gigstudios.newsummary.ArticleReceiver.(ArticleReceiver.java:37) 08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:com.gigstudios.newssummary.MainActivity.fetchNews(MainActivity.java:114) 08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:com.gigstudios.newssummary.MainActivity$1.run(MainActivity.java:52) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at-android.os.Handler.handleCallback(Handler.java:746) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at-android.os.Handler.dispatchMessage(Handler.java:95) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at-android.os.Looper.loop(Looper.java:148) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:位于android.app.ActivityThread.main(ActivityThread.java:5443) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at java.lang.reflect.Method.invoke(本机方法) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 08-03 14:25:23.843 27210-27210/com.gigstudios.news摘要D/AndroidRuntime:关闭虚拟机 08-03 14:25:23.844 27210-27210/com.gigstudios.newsummary E/AndroidRuntime:致命异常:main 进程:com.gigstudios.newssummary,PID:27210 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“opennlp.tools.sentdetect.SentenceDetectorFactory opennlp.tools.sentdetect.SentenceModel.getFactory()” 在opennlp.tools.sentdetect.SentenceDetectorME.(SentenceDetectorME.java:86) 在com.gigstudios.newssummary.WordCounter.MakeQuences(WordCounter.java:50)上 在com.gigstudios.newssummary.Article上(Article.java:19) 在com.gigstudios.newssummary.ArticleReceiver.receiveNewsArticles上(ArticleReceiver.java:87) 在com.gigstudios.newssummary.ArticleReceiver(ArticleReceiver.java:37) 位于com.gigstudios.newssummary.MainActivity.fetchNews(MainActivity.java:114) 在com.gigstudios.newssummary.MainActivity$1.run(MainActivity.java:52) 位于android.os.Handler.handleCallback(Handler.java:746) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5443) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

InputStream始终返回nullpointerexception SentenceModel model=null; InputStream modelIn=null; AssetManager=context.getAssets(); 试一试{ modelIn=assManager.open(“en sent.bin”); model=新句子model(modelIn); }捕获(IOE异常){ e、 printStackTrace(); }最后{ if(modelIn!=null){ 试一试{ modelIn.close(); }捕获(IOE异常){ e、 printStackTrace(); } } } //初始化句子检测器 SentenceDetectorME sentenceDetector=新的SentenceDetectorME(型号); //堆栈跟踪 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:java.io.FileNotFoundException:en-sent.bin 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:位于android.content.res.AssetManager.openAsset(本机方法) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:位于android.content.res.AssetManager.open(AssetManager.java:313) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:位于android.content.res.AssetManager.open(AssetManager.java:287) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:com.gigstudios.newsummary.WordCounter.make句子(WordCounter.java:35) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:com.gigstudios.newsummary.Article.(Article.java:19) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:在com.gigstudios.newsummary.ArticleReceiver.receiveNewsArticles(ArticleReceiver.java:87) 08-03 14:25:23.842 27210-27210/com.gigstudios.newsummary W/System.err:com.gigstudios.newsummary.ArticleReceiver.(ArticleReceiver.java:37) 08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:com.gigstudios.newssummary.MainActivity.fetchNews(MainActivity.java:114) 08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:com.gigstudios.newssummary.MainActivity$1.run(MainActivity.java:52) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at-android.os.Handler.handleCallback(Handler.java:746) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at-android.os.Handler.dispatchMessage(Handler.java:95) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at-android.os.Looper.loop(Looper.java:148) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:位于android.app.ActivityThread.main(ActivityThread.java:5443) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:at java.lang.reflect.Method.invoke(本机方法) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 08-03 14:25:23.843 27210-27210/com.gigstudios.newsummary W/System.err:com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 08-03 14:25:23.843 27210-27210/com.gigstudios.news摘要D/AndroidRuntime:关闭虚拟机 08-03 14:25:23.844 27210-27210/com.gigstudios.newsummary E/AndroidRuntime:致命异常:main 进程:com.gigstudios.newssummary,PID:27210 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“opennlp.tools.sentdetect.SentenceDetectorFactory opennlp.tools.sentdetect.SentenceModel.getFactory()” 在opennlp.tools.sentdetect.SentenceDetectorME.(SentenceDetectorME.java:86) 在com.gigstudios.newssummary.WordCounter.MakeQuences(WordCounter.java:50)上 在com.gigstudios.newssummary.Article上(Article.java:19) 在com.gigstudios.newssummary.ArticleReceiver.receiveNewsArticles上(ArticleReceiver.java:87) 在com.gigstudios.newssummary.ArticleReceiver(ArticleReceiver.java:37) 位于com.gigstudios.newssummary.MainActivity.fetchNews(MainActivity.java:114) 在com.gigstudios.newssummary.MainActivity$1.run(MainActivity.java:52) 位于android.os.Handler.handleCallback(Handler.java:746) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5443) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618),java,android,nullpointerexception,inputstream,assets,Java,Android,Nullpointerexception,Inputstream,Assets,我已经尝试解决这个问题好几个小时了,却一事无成。在上面的代码中,示例模型始终为null,并且en-sent.bin文件似乎没有读入modelIn对象。我的bin文件当前位于资产文件夹中。非常感谢您的帮助。您需要: SentenceModel model = null; InputStream modelIn = null; AssetManager assManager = context.getAssets(); try { modelIn

我已经尝试解决这个问题好几个小时了,却一事无成。在上面的代码中,示例模型始终为null,并且en-sent.bin文件似乎没有读入modelIn对象。我的bin文件当前位于资产文件夹中。非常感谢您的帮助。

您需要:

    SentenceModel model = null;
    InputStream modelIn = null;

    AssetManager assManager = context.getAssets();

    try {
        modelIn = assManager.open("en-sent.bin");
        model = new SentenceModel(modelIn);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (modelIn != null) {
            try {
                modelIn.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    //initializes sentence detector
    SentenceDetectorME sentenceDetector = new SentenceDetectorME(model);

//Stacktrace 
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err: java.io.FileNotFoundException: en-sent.bin
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at android.content.res.AssetManager.openAsset(Native Method)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at android.content.res.AssetManager.open(AssetManager.java:313)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at android.content.res.AssetManager.open(AssetManager.java:287)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at com.gigstudios.newssummary.WordCounter.makeSentences(WordCounter.java:35)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at com.gigstudios.newssummary.Article.<init>(Article.java:19)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at com.gigstudios.newssummary.ArticleReceiver.receiveNewsArticles(ArticleReceiver.java:87)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at com.gigstudios.newssummary.ArticleReceiver.<init>(ArticleReceiver.java:37)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at com.gigstudios.newssummary.MainActivity.fetchNews(MainActivity.java:114)
08-03 14:25:23.842 27210-27210/com.gigstudios.newssummary W/System.err:     at com.gigstudios.newssummary.MainActivity$1.run(MainActivity.java:52)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at android.os.Handler.handleCallback(Handler.java:746)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at android.os.Looper.loop(Looper.java:148)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5443)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-03 14:25:23.843 27210-27210/com.gigstudios.newssummary D/AndroidRuntime: Shutting down VM
08-03 14:25:23.844 27210-27210/com.gigstudios.newssummary E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            Process: com.gigstudios.newssummary, PID: 27210
                                                                            java.lang.NullPointerException: Attempt to invoke virtual method 'opennlp.tools.sentdetect.SentenceDetectorFactory opennlp.tools.sentdetect.SentenceModel.getFactory()' on a null object reference
                                                                                at opennlp.tools.sentdetect.SentenceDetectorME.<init>(SentenceDetectorME.java:86)
                                                                                at com.gigstudios.newssummary.WordCounter.makeSentences(WordCounter.java:50)
                                                                                at com.gigstudios.newssummary.Article.<init>(Article.java:19)
                                                                                at com.gigstudios.newssummary.ArticleReceiver.receiveNewsArticles(ArticleReceiver.java:87)
                                                                                at com.gigstudios.newssummary.ArticleReceiver.<init>(ArticleReceiver.java:37)
                                                                                at com.gigstudios.newssummary.MainActivity.fetchNews(MainActivity.java:114)
                                                                                at com.gigstudios.newssummary.MainActivity$1.run(MainActivity.java:52)
                                                                                at android.os.Handler.handleCallback(Handler.java:746)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                at android.os.Looper.loop(Looper.java:148)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
我找到了一个简单的解决办法
    BufferedReader reader = null;
StringBuilder sbuilder = new StringBuilder();
    try {
        reader = new BufferedReader(
            new InputStreamReader(getAssets().open("en-sent.bin")));

        // read
        String mLine; 
        while ((mLine = buffer.readLine()) != null) {
                    sbuilder.append(mLine);
        }
    } catch (IOException e) {
//log
    } finally {
        if (reader != null) {
             try {
                 reader.close();
             } catch (IOException e) {
 //log
             }
        }
    }
        modelIn = assManager.open("en-sent.bin");
        model = new SentenceModel(modelIn);
        modelIn = context.getResources().openRawResource(R.raw.en_sent);
        model = new SentenceModel(modelIn);