因此,我试图想出一个可以阅读日文文本文本的Android应用程序,并向读者提供有关所用词汇和语法的深刻信息。
为此,我需要一个日语形态分析器将非间隔文本解析为单个单词。
我从Apache找到了一些非常有用的库:
Lucene-Analyzers-Kuromoji(日本形态分析仪)
Lucene-Analyzers-Common(Dependent)
Lucene-Core(Dependent)
在一个空的Java项目中测试这些库,我发现这些库对于分解日文文本非常有用和可靠。可悲的是,当我在我的应用程序中尝试使用它们时,我的项目无法编译,我意识到我的库是基于Java 7U40构建的。
http://grepcode.com/static/data/html/repo1.maven.org $ maven2的/ org.apache.lucene / lucene的-分析器共用/ 5.0.0 / visualization.svg
查看Stack Overflow上的一些帖子,似乎一致认为唯一的解决方案是找到一个用Java 6或更早版本编写的库。
通过Maven存储库搜索,我发现相同库的版本一直追溯到2012年。
检查每一个的依赖关系,我发现用java 6编写的最新版本刚刚于2014年4月发布。
http://grepcode.com/static/data/html/repo1.maven.org $ maven2的/ org.apache.lucene / lucene的-分析器共用/ 4.7.2 / visualization.svg
这是解决Android的jdk 6限制的好方法吗?使用基于旧版Java的过时软件似乎是一个相当临时的解决方案,我不认为这种方法可以持续很长时间。
随着更多现代Java版本编写更多库,这个问题应该变得更糟。
我个人没有听说过有关Android切换到java 7或8的问题(我是Android的新手),有没有人知道是否有更可靠的方法来解决这个问题?
答案 0 :(得分:1)
这是解决Android的jdk 6限制的好方法吗?
对于某些“好”的定义,是的,如果它运行。
随着更多现代Java版本编写更多库,这个问题应该变得更糟。
仅适用于那些专注于传统Java环境并尝试在Android上使用它们的项目的开发人员。请注意,Lucene并非设计用于移动设备;从历史上看,他们的重点是服务器端Java。如果来自Lucene的东西恰好在Android上运行,那就太棒了,但是Lucene项目可能会或者可能不会在他们关注的问题列表中找到Android兼容性。
在语法方面,Android支持在较新版本的Java中进行开发。然而,Android的类库与用于Java SE,Java EE等的Java类库不同。这与Java版本没有任何内在联系,但是因为Android是在Java 6是当前版本的Java时发布的,所以它的类库最接近Java 6中的Java SE。
有人搔痒可能会创建这些库的变体,与当前的功能集相匹配,但坚持使用Android SDK中存在的类。或者,有痒痒的人可以更直接地实现一个Android友好的日本形态分析仪(而且,据我所知,有人有,因为我没有去寻找一个)。
答案 1 :(得分:0)
根据此post,Android确实支持jdk 7。 您需要更改项目的语言级别(并且可能会更新android sdk,因为它是最近的)