Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中加载owl文件_Java_Android_Semantic Web_Owl_Owl Api - Fatal编程技术网

Java 在android中加载owl文件

Java 在android中加载owl文件,java,android,semantic-web,owl,owl-api,Java,Android,Semantic Web,Owl,Owl Api,我知道这个问题之前有人问过,但现在任何地方都没有合适的解决方案,所以我要再问一次。 如何在android项目中加载owl文件 代码在java中工作,但在android中没有用处。当我在android项目中尝试它们时,该文件无法访问。我使用的是OWLApi 3.4.10。 我正在从mainActivity类加载本体。加载在OntologyClass类中的loadOntology方法中执行。 在主要方法中,编码如下所示 @Override protected void onCreate(Bundle

我知道这个问题之前有人问过,但现在任何地方都没有合适的解决方案,所以我要再问一次。 如何在android项目中加载owl文件

代码在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();
        }
本体类的编码如下:

@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:打开失败:没有这样的文件或目录

有人能解决这个文件加载问题吗

感谢处理生成路径错误: 通常,如果您在java中使用OWLAPI,那么您所需要的只是导入OWLAPI库。但在安卓系统中,若你们只这样做,你们仍然会得到一个错误,说明找不到方法。因此,您需要执行第二步,即右键单击您的android项目,然后

属性->Java构建路径->订单和导出选项卡

在这里选中owlapi3.4.10.jar

资产文件夹中文件路径的答案如下:

asserts文件夹中WL文件的目录/路径可以通过InputStream类访问。file类不适用于此文件夹,因此,不要使用

File File=newfileassets/Pizza.owl

使用此代码

InputStream is= myContext.getAssets().open("Pizza.owl");
最后使用的InputStream实例是,这表示资产文件夹ie中文件的正确路径

pizza = manager.loadOntologyFromOntologyDocument(is);

我知道这个问题之前有人问过,但现在任何地方都没有合适的解决方案,所以我要再问一次。在这种情况下,正确的做法是对现有问题给予奖励,用更多信息更新它,等等。我确信OWL API可以用于Android应用程序,因为我和其他人已经使用它来加载本体。不过,我想不起来这是否适用于3.4.10版。一旦我有时间重新创建,我会详细回答。@JoshuaTaylor对不起,如果我知道我可能会这么做的话。谢谢你information@Ignazio你在哪个安卓版本上测试过这个?是的,如果你能管理好时间并用一些细节来回答这个问题,这将是非常有帮助的。我在4.1.2上运行了这个问题。目前的问题形式只适用于那些想办法打开属于apk资产一部分的文件的人。您可以添加以前生成错误的详细信息以及如何修复它吗?这些可能与另一个用户在使用OWL API时遇到问题有关。@Ignazio抱歉,我没有得到术语“上一个生成错误”。您说过,在生成路径中有一个错误,当时您有“方法未找到错误”。