【问题标题】:Attempting to overcome Android Java jdk limitations试图克服 Android Java jdk 限制
【发布时间】:2015-05-11 18:24:47
【问题描述】:

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

为此,我需要一个日语形态分析器来将非空格文本解析为单个单词。

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

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

Lucene-Analyzers-Common(依赖)

Lucene-Core(依赖)

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

http://grepcode.com/static/data/html/repo1.maven.org$maven2/org.apache.lucene/lucene-analyzers-common/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-analyzers-common/4.7.2/visualization.svg

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

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

我个人没有听说过有关 Android 切换到 java 7 或 8 的任何消息(我是 Android 新手),有谁知道是否有更可靠的方法来解决这个问题?

【问题讨论】:

    标签: java android lucene


    【解决方案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 友好的日本形态分析器(据我所知,有人有,因为我没有去寻找)。

    【讨论】:

    • 啊,我明白了。感谢您的信息。
    【解决方案2】:

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

    【讨论】:

    • 是吗?我刚刚生成了一个 lint 结果,并且在 java.nio.file 上检查它时遇到了问题,它只是在 java 7 中添加的。从谷歌搜索来看,听起来 Android 只支持以下语言功能在 java 7 中添加了钻石,多捕获(引用自这篇文章)stackoverflow.com/questions/20480090/…
    猜你喜欢
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2015-04-12
    • 2015-02-25
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多