Java 格式错误的线路异常-Android上的JWI
我正在尝试在Android项目上使用。我能够做的基本代码,以打开字典等(如在文档工作中给出),这也是我在我自己的项目中需要的。但是,我注意到,有时Java 格式错误的线路异常-Android上的JWI,java,android,wordnet,numberformatexception,jwi,Java,Android,Wordnet,Numberformatexception,Jwi,我正在尝试在Android项目上使用。我能够做的基本代码,以打开字典等(如在文档工作中给出),这也是我在我自己的项目中需要的。但是,我注意到,有时dict.open()方法会在运行时失败,并出现一个错误,其堆栈跟踪如下所示: 10-15 19:10:34.556: E/com.sriram.dict.EHDictionary@40516b00(16596): Run time exception caught. 10-15 19:10:34.576: W/System.err(16
dict.open()
方法会在运行时失败,并出现一个错误,其堆栈跟踪如下所示:
10-15 19:10:34.556: E/com.sriram.dict.EHDictionary@40516b00(16596): Run time exception caught.
10-15 19:10:34.576: W/System.err(16596): edu.mit.jwi.data.parse.ILineParser$MisformattedLineException: ��������Mac OS X �������� ������2����ᄚ����������¬������������������������������������������������������������������������ATTR;レ����¬������リ������U������������������������������������リ������U����com.apple.quarantine��0001;525b8927;Google\x20Chrome;774A992E-4B54-4DBA-AD26-44520094A014|com.google.Chrome��������������������������������������������������������������������������������������� < lots of these question marks>
��������������������������
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.data.parse.DataLineParser.parseLine(DataLineParser.java:234)
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.data.parse.DataLineParser.parseLine(DataLineParser.java:54)
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.data.FileProvider.createDataSource(FileProvider.java:481)
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.data.FileProvider.createSourceMap(FileProvider.java:431)
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.data.FileProvider.open(FileProvider.java:318)
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.DataSourceDictionary.open(DataSourceDictionary.java:92)
10-15 19:10:34.576: W/System.err(16596): at edu.mit.jwi.CachingDictionary.open(CachingDictionary.java:133)
10-15 19:10:34.576: W/System.err(16596): at com.sriram.dict.EHDictionary.initDict(EHDictionary.java:250)
10-15 19:10:34.576: W/System.err(16596): at
com.sriram.dict.EHDictionary.<init>(EHDictionary.java:50)
10-15 19:10:34.576: W/System.err(16596): at com.sriram.dict.EHTextView.initEHTextView(EHTextView.java:83)
10-15 19:10:34.576: W/System.err(16596): at com.sriram.dict.ContentHandler.onCreate(ContentHandler.java:84)
10-15 19:10:34.576: W/System.err(16596): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-15 19:10:34.576: W/System.err(16596): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
10-15 19:10:34.576: W/System.err(16596): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
10-15 19:10:34.576: W/System.err(16596): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-15 19:10:34.576: W/System.err(16596): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
10-15 19:10:34.576: W/System.err(16596): at android.os.Handler.dispatchMessage(Handler.java:99)
10-15 19:10:34.576: W/System.err(16596): at android.os.Looper.loop(Looper.java:123)
10-15 19:10:34.576: W/System.err(16596): at android.app.ActivityThread.main(ActivityThread.java:3691)
10-15 19:10:34.576: W/System.err(16596): at java.lang.reflect.Method.invokeNative(Native Method)
10-15 19:10:34.576: W/System.err(16596): at java.lang.reflect.Method.invoke(Method.java:507)
10-15 19:10:34.576: W/System.err(16596): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
10-15 19:10:34.576: W/System.err(16596): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
10-15 19:10:34.576: W/System.err(16596): at dalvik.system.NativeStart.main(Native Method)
10-15 19:10:34.581: W/System.err(16596): Caused by: java.lang.NumberFormatException: unable to parse '��������Mac' as integer
10-15 19:10:34.581: W/System.err(16596): at java.lang.Integer.parse(Integer.java:383)
10-15 19:10:34.581: W/System.err(16596): at java.lang.Integer.parseInt(Integer.java:372)
10-15 19:10:34.581: W/System.err(16596): at java.lang.Integer.parseInt(Integer.java:332)
10-15 19:10:34.581: W/System.err(16596): at edu.mit.jwi.data.parse.DataLineParser.parseLine(DataLineParser.java:95)
10-15 19:10:34.581: W/System.err(16596): ... 23 more
上述错误似乎发生在从我提供的存储库下载词典的情况下。我认为这可能是下载过程中丢失了一些东西,因此添加了一个校验和(使用MD5),这样每次加载应用程序时,都会执行该校验和,然后将其与字典中各种文件的校验和列表进行比较(从已知没有出现此错误的文件中)。每次校验和都匹配
我的问题:1.这是什么意思????在上面的错误指示中?有什么办法可以找到它的文本吗?
2.任何关于解决这个问题的线索都是非常受欢迎的。这个错误不是因为JWI。将文件从Mac复制到非Mac系统会导致操作系统自动添加资源分叉文件。如果文件名为“file1.xyz”,则Mac OSX将尝试在同一目录中添加名为“.\u file1.xyz”的资源分支。资源叉是一种元数据,有助于在屏幕上呈现内容(字体名称、大小等)。在大多数*nix类型的操作系统上,名称开头带有“.”的任何文件都将被隐藏,导致无法看到。这些文件是导致字典加载失败的原因
除了从每个目录中删除文件外,没有其他方法可以解决此问题。这是Mac遗留的问题。Sriram,我很抱歉恢复了几个月前的线程。你能帮我把JWI集成到我的android应用程序中吗。我一直在与Rita wordnet jar进行斗争,并将其集成到android中。您是如何下载WordNet数据库文件并将其添加到android项目的?我有点绝望,我会接受任何用Java编写并与Android兼容的guidanceJWI。我将jwi jar导入到项目的libs/文件夹中,并查看了网站上的示例项目。因此,您没有导入WordNet数据库文件?当然,您也需要导入这些文件。在网站上查看示例代码。它将为您提供在Android上运行JWI所需的一切。
try {
dict.open();
if(VERBOSE) Log.v(this.toString(), "Dictionary open.");
wns = new WordnetStemmer(dict);
} catch(IOException e) {
Log.e(this.toString(), "IOException in opening dictionary.");
e.printStackTrace();
} catch(RuntimeException e1) {
Log.e(this.toString(), "Run time exception caught.");
e1.printStackTrace();
}