当前位置: 首页 > 知识库问答 >
问题:

试图克服Android Java jdk的限制

庾和昶
2023-03-14

因此,我正在尝试开发一个Android应用程序,它可以阅读日语文本文件,并为读者提供关于所使用的vocab和语法的有洞察力的信息。

要做到这一点,我需要一个日语形态分析器来解析不间隔的文本为单个单词。

我从Apache找到了几个非常有用的库:

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

Lucene-分析器-通用(依赖)

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的JDK6限制的好方法吗?使用建立在旧版本Java上的过时软件似乎是一个相当临时的解决方案,我认为这种方法不会坚持很久。

随着更多的库正在用更现代的Java版本编写,这个问题应该只会变得更糟。

我个人还没有听说过关于Android切换到Java 7或8的事情(我是Android的新手),有没有人知道有没有更可靠的方法来解决这个问题呢?

共有1个答案

狄晟睿
2023-03-14

这是绕过Android的JDK6限制的好方法吗?

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

随着更多的库正在用更现代的Java版本编写,这个问题应该只会变得更糟。

仅适用于开发人员,这些开发人员关注于传统的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中存在的类。或者,有兴趣的人可以更直接地实现一个安卓友好的日语形态分析器(据我所知,有人已经实现了,因为我还没有去找一个)。

 类似资料:
  • 我正在使用spark 2.4.2读取包含600条记录的csv。最后100条记录有大量数据。我遇到的问题是, 我已经增加了到2g(最大允许设置)和火花驱动程序内存到1g,能够处理更多的记录,但仍然不能处理csv中的所有记录。 我试着翻页600条记录。e、 对于6个分区,我可以在每个分区处理100条记录,但由于最后100条记录太多,因此会发生缓冲区溢出。 在这种情况下,最后100条记录很大,但这可能是

  • 我有一个XML存储在CLOB中。为了显示来自XML的特定数据,我需要运行各种substr和instr函数。 我当前的代码使用varchar2(32000)变量处理它,如下所示: 我编写了一个匿名块来测试子字符串的限制,如下所示: 我注释掉了第二个子字符串,只是为了看看如果我将str_length更改为32000以下,表是否会填充数据,并且它确实被填充了。 这是我的输出 下面是我的输出:

  • 问题内容: 我正在使用扫描仪的方法读取文本文件行。但是,当我在文件行中达到一定大小时,扫描仪不再允许我读取它,而是返回一个空行。 我应该如何配置缓冲区以接收大量数据? 只是一个文件,行中有许多整数,并用空格分隔。例如,一行中有40000个整数。(请注意,它适用于小于或等于10000整数的文件行,但不适用于40000) 234 544 765 45 34 67 67 87 98 43 [… n =

  • 问题内容: 我知道XHTML不支持嵌套的表单标记,但是我仍然没有找到解决该问题的优雅方法。 有人说您不需要它,并且他们无法想到是否需要这样做。嗯,我个人不认为一个场景,我的 没有 需要它。 让我们看一个非常简单的例子: 您正在制作一个博客应用程序,您有一个表单,其中包含一些用于创建新帖子的字段以及一个带有“操作”(如“保存”,“删除”,“取消”)的工具栏。 我们的目标是以 不需要JavaScrip

  • Android并不真正支持电话录音,但一些设备在一定程度上支持它。 这使得各种通话记录应用程序尽可能多地收集关于设备和应该对它们做什么的信息,并决定该做什么。 有些甚至提供根解决方案。 “更改音频控制”(“自动更改音频控制”) “更改音频驱动程序”(更改音频驱动程序设置以启用录制模式21、22、23、24、31、32、33、34“) 对于根设备:“启动输入流” 在搭载Android8的Galaxy