我知道这个问题以前问过,但现在没有合适的解决办法,所以我要再问一遍。如何在android项目中加载owl文件?
这些代码在java中工作,但在android中没有用。当我在android项目中尝试它们时,文件就无法访问了。我使用的是owlapi3.4.10。我正在从mainactivity类加载本体。加载在ontologyclass类中的loadontology方法中执行。在主要方法中,编码如下
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ontologyClass ontology;
ontology = new ontologyClass();
try {
ontology.ontologyLoad();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ontologyclass的编码如下:
@Ignore
@SuppressWarnings("javadoc")
public class ontologyClass {
OWLOntology pizza;
OWLOntologyManager manager;
public ontologyClass ontologyLoad() throws OWLOntologyCreationException {
manager= OWLManager.createOWLOntologyManager();
File file= new File("assets/Pizza.owl");
pizza = manager.loadOntologyFromOntologyDocument(file);
return this;
}
pizza.owl文件位于assets文件夹中。在logcat中,我收到如下警告
filenotfountexception:/assets/pizza.owl:打开failed:enoent (没有这样的文件或目录)
有人能解决这个文件加载问题吗?
谢谢
1条答案
按热度按时间q1qsirdb1#
处理构建路径错误:通常,如果您在java中使用owlapi,那么您所需要的只是导入owlapi库。但在android中,如果你只这样做,你仍然会得到错误声明“methodnotfound”。因此,您需要执行第二步,即右键单击您的android项目,然后
属性->java构建路径->订单和导出选项卡
这里选中了owlapi3.4.10.jar
assets文件夹中的文件路径的答案如下:
asserts文件夹中WL文件的目录/路径可以通过inputstream类访问,而file类不适用于此文件夹,因此不使用
File file= new File("assets/Pizza.owl");
使用此代码最后使用的inputstream示例是,这表示资产文件夹ie中文件的正确路径