-2

この質問は以前に尋ねられたことは知っていますが、現在どこにも適切な解決策がないため、もう一度質問します。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();
        }

onologyClass のコーディングは次のとおりです。

@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: オープンに失敗しました: ENOENT (そのようなファイルまたはディレクトリはありません)

誰でもこのファイル読み込みの問題を解決できますか?

ありがとう

4

1 に答える 1

0

ビルド パス エラーへの対処: 通常、Java で owl api を使用している場合、必要なのは owl api ライブラリをインポートすることだけです。しかし、Android でこれだけを行うと、「メソッドが見つかりません」というエラーが表示されます。したがって、2番目のステップを実行する必要があります。つまり、Androidプロジェクトを右クリックしてから

プロパティ -> Java ビルド パス -> 注文とエクスポート タブ

OWLAPi 3.4.10.jarにチェックマークを付けます

assets フォルダー内のファイル パスの答えは次のとおりです。

Asserts フォルダー内のフクロウ ファイルのディレクトリ/パスには、InputStream クラスを介してアクセスできます 。File クラスはこのフォルダーでは機能しないため、代わりに

File file= new File("assets/Pizza.owl");

このコードを使用してください

InputStream is= myContext.getAssets().open("Pizza.owl");

最後に InputStream インスタンスを使用します。これ、アセットフォルダー内のファイルの正しいパスを表します。

pizza = manager.loadOntologyFromOntologyDocument(is);
于 2015-01-18T10:52:22.033 に答える