有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

试图克服Android Java jdk的限制

因此,我正在尝试开发一款Android应用程序,它可以读取日语文本文件,并为读者提供有关所使用的词汇和语法的深刻信息

要做到这一点,我需要一个日语词法分析器来将不带空格的文本解析成单个单词

我从Apache中找到了一些非常有用的库:

Lucene分析仪Kuromoji(日本形态分析仪)

Lucene分析仪通用(依赖)

Lucene核心(相关)

在一个空的Java项目中测试这些库,我发现这些库对于分解日语文本非常有用和可靠。遗憾的是,当我尝试在我的应用程序中使用它们时,我的项目无法编译,我意识到我的库是基于Java7U40构建的

http://grepcode.com/static/data/html/repo1.maven.org$maven2/org。阿帕奇。lucene/lucene分析器通用/5.0.0/可视化。svg

通过阅读一些关于堆栈溢出的文章,一致认为唯一的解决方案是找到一个用Java6或更早版本编写的库

在Maven存储库中搜索,我发现这些库的版本可以追溯到2012年

检查每个版本的依赖关系,我发现使用java 6编写的最新版本刚刚在2014年4月发布

http://grepcode.com/static/data/html/repo1.maven.org$maven2/org。阿帕奇。lucene/lucene分析器通用/4.7.2/可视化。svg

这是绕过Android jdk 6限制的好方法吗?使用基于旧版本Java的过时软件似乎是一个相当临时的解决方案,我认为这种方法不会持续很长时间

随着越来越多的库使用更现代的Java版本编写,这个问题只会变得更糟

我个人还没有听说过Android切换到Java7或Java8(我是Android新手),有人知道是否有更可靠的方法来解决这个问题吗


共 (2) 个答案

  1. # 1 楼答案

    根据这个post,Android确实支持jdk 7。 您需要更改项目的语言级别(可能还需要更新android sdk,因为它是最新的)

  2. # 2 楼答案

    Is this a good method for getting around Android's jdk 6 limitation?

    对于“好”的一些定义,是的,如果它运行的话

    As more libraries are being written in more modern versions of Java, this problem should only get worse.

    仅适用于那些正在开发专注于传统Java环境的项目并尝试在Android上使用它们的开发人员。请注意,Lucene并非设计用于移动设备;从历史上看,他们一直关注服务器端Java。如果Lucene的东西恰好能在Android上运行,那就太好了,但Lucene项目可能会,也可能不会把Android兼容性列为他们最关心的问题

    Android在语法方面支持Java新版本的开发。然而,Android的类库与Java的Java SE、Java EE等类库不同。这与Java版本没有本质上的关系,尽管Android是在Java 6是Java的当前版本时发布的,它的类库与Java 6中的Java SE最为相似

    有人可能会创建一个与当前功能集相匹配的变体库,但仍然使用Android SDK中存在的类。或者,有人想抓挠,可以更直接地实现一个Android友好的日本形态学分析器(而且,据我所知,有人已经实现了,因为我还没有去寻找)