我知道这个问题早先被问过,但现在没有任何适当的解决方案,所以我会再问一遍。 如何在我的android项目中加载猫头鹰文件?
代码在java中有效但在android中没用。当我在一个Android项目中尝试它们时,该文件无法加入。我正在使用OWLApi 3.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:open failed:ENOENT(没有这样的文件或目录)
任何人都可以修复此文件加载问题吗?
谢谢
答案 0 :(得分:0)
解决构建路径错误: 通常,如果您在java中使用owl api,那么您只需要导入owl api库。但是在android中,如果只做这个,你仍然会收到错误,说明“找不到方法”。因此,您需要执行第二步,即右键单击您的Android项目,然后
属性 - > Java构建路径 - >订单和导出标签
并勾选OWLAPi 3.4.10.jar
资源文件夹中文件路径的答案如下:
asserts文件夹中theowl文件的目录/路径可以通过 InputStream类访问,File类不适用于此文件夹,因此不使用
File file= new File("assets/Pizza.owl");
使用此代码
InputStream is= myContext.getAssets().open("Pizza.owl");
最后使用InputStream实例是,这表示资源文件夹中文件的正确路径,即
pizza = manager.loadOntologyFromOntologyDocument(is);