Java Android上的构建失败Jena(Androjena)

Java Android上的构建失败Jena(Androjena),java,android,jena,Java,Android,Jena,我目前正在开发一个使用OWL本体的移动应用程序 我计划使用androjena库,它是JavaJena库的一个端口 按照文档中的说明,我已经将Androjena附带的5.jar文件添加到Android项目的构建路径中 这会导致编译时出现以下错误: [2010-10-05 11:19:28-MS Project]警告:忽略匿名内部类的InnerClasses属性,该匿名内部类没有关联的EnclosingMethod属性。(此类可能是由损坏的编译器生成的。) [2010-10-05 11:19:46

我目前正在开发一个使用OWL本体的移动应用程序

我计划使用androjena库,它是JavaJena库的一个端口

按照文档中的说明,我已经将Androjena附带的5.jar文件添加到Android项目的构建路径中

这会导致编译时出现以下错误:

[2010-10-05 11:19:28-MS Project]警告:忽略匿名内部类的InnerClasses属性,该匿名内部类没有关联的EnclosingMethod属性。(此类可能是由损坏的编译器生成的。)

[2010-10-05 11:19:46-索引加载程序]无法执行索引:null

[2010-10-05 11:19:46-MS Project]转换为Dalvik格式失败:无法执行dex:null

有人经历过类似的问题吗


谢谢

就连我也遇到了类似的问题。我从外部jar列表中删除了icu4j.jar,它运行良好。虽然我不知道为什么这个罐子首先被使用


不管怎样,你有没有尝试过使用其他的推理工具来开发移动应用程序和猫头鹰?我尝试了JESS,但它似乎在移植方面存在一些问题。

几个月前,我和我的研究团队参与了一个在基于Android的移动设备上使用本体论的项目。我们首先尝试了Androjena项目(),但是它的开发几乎停止了,它只支持Jena特性的一个子集。因此,我们尝试在Android上使用完整的ApacheJena项目。虽然该项目没有直接工作,但我们分析了问题,并在Android上提供了一个完整的Jena副本

Jena框架使用名称空间javax.*定义了一些包(主要是从依赖项继承的,尤其是Xerce)。这样的名称空间目前被Dalvik交叉编译器解释为属于“核心”java库,因此交叉编译并不“安全”。结果是,除非编译器设置为“核心库”模式,否则包含此类包的代码不会交叉编译,这导致编译后的代码可能在系统更新后停止工作,并且正如交叉编译器警告的那样,“最终将导致痛苦、痛苦、悲伤和哀叹。”


实际上,包不是java核心库的一部分,因此简单的重新分解可以解决这个问题。在这个特定的例子中,我们下载了xerces的最后一个源代码,将所有javax.*包重构为javax2.*并重新打包了库,一切都很好地工作。顺便说一句,这使Android上的完整Jena框架得以实现,开发者可以像目前在典型Java应用程序中所做的那样只包含所需的模块。

好吧,删除icu4j.jar也帮了我的忙,然而,我还没有发现任何其他与android兼容的好的OWL推理机。ICU是一个国际化jar-因此,在移除它之后,请注意未来的国际化问题。一些推理机在