2015-01-15 51 views
-2

我知道這個問題之前已經提出過,但現在沒有適當的解決方案,所以我要再次提問。 我怎樣才能加載我的android項目中的貓頭鷹文件?在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文件是資產文件夾內。 在logcat中我收到這樣

FileNotFountException: /assets/Pizza.owl: open failed:ENOENT (no such file or directory)

警告,任何人都可以修復這個文件加載問題?

感謝

+0

「我知道這個問題之前被問到過,但現在沒有任何適當的解決方案,所以我會再次提問。「在這種情況下,正確的做法是提供現有問題的獎勵,並用更多信息更新等。 –

+0

我相信OWL API可以在Android應用程序中使用,因爲我和其他人使用它來加載本體在JFact中。我不記得這是否適用於3.4.10版本。一旦我有時間重新創建,我會回覆詳細信息。 – Ignazio

+0

@JoshuaTaylor對不起,如果我知道我可能已經做到了。感謝您的信息 – user2083529

回答

0

應對構建路徑錯誤: 通常如果使用的是貓頭鷹API在Java那麼所有你需要的僅僅是進口貓頭鷹API庫。但在Android中,如果你只做到這一點,你仍然會得到錯誤,說明「找不到方法」。所以,你需要進行第二個步驟,即右鍵點擊你的Android項目,然後

properties-> Java Build Path -> order and export tab

,有查馬克OWLAPi 3.4.10.jar

答案的資產文件夾中的文件路徑如下:

在斷言文件夾可以通過的InputStream類 File類此文件夾不工作訪問theowl文件的目錄/路徑,所以不是使用

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

使用此代碼

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

最後使用的InputStream實例,這代表了文件的資產文件夾,即正確的路徑

pizza = manager.loadOntologyFromOntologyDocument(is); 
+0

目前形式的問題只與尋找方法來打開apk資源一部分的文件相關。你可以添加以前的構建錯誤的細節,以及如何解決它?這些可能與另一個有OWL API問題的用戶有關。 – Ignazio

+0

@Ignazio對不起,我沒有得到術語「以前的構建錯誤」。 – user2083529

+0

您說在構建路徑中有方法未找到錯誤時出現錯誤。 – Ignazio