2014-02-11 1 views
0

Я пытаюсь загрузить файл OWL, который я сделал в Protégé. Я импортирую OWL API 3.4.3 в свой проект, а также передал файл sample.owl в необработанную папку, но когда я пытаюсь загрузить файл OWL, он не работает. Там не было никакой ошибки, но я просто получаю сообщениене удалось загрузить файл сова в проект андроида с помощью owl api

, к сожалению, sampleproject остановил

Вот раздел кода я использую. Когда я пытаюсь выполнить код в стандартной среде Java, он работает без проблем.

OWLOntology localOntology = null; 
int rID = resources.getIdentifier("com.example.cammclient1:raw/"+"sample", null, null); 
InputStream input = resources.openRawResource(rID); 
OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); 
ontology = manager.loadOntologyFromOntologyDocument(input); 

try { 
    for (OWLClass cls : localOntology.getClassesInSignature()) { 
    Log.d("class in the ontology", ((CharSequence) cls).toString()); 
    } 
    TV1.setText("reading classes..............."); 
} 
catch (Exception e) { 
    TV1.setText("Not successfull"); 
} 
+0

Вы не получаете трассировки стека, потому что вы проглатываете исключение в блоке try/catch. Вы можете распечатать трассировку стека для e или установить текст на TV1 в e.getMessage(). – Ignazio

+0

tnx для вашего повтора, я тоже попробовал ваше предложение, но все же он не работает ... он падает до запуска приложения ... – user2897572

+0

Трудно предложить что-нибудь еще. Попробуйте использовать 3.4.10 – Ignazio

ответ

0

Вы бросаете OWLClass экземплярам CharSequence и затем вызвать toString() на нем. Это приведет к выбросу ClassCastException - OWLClass не является строкой. Просто используйте cls.toString() вместо этого, у вас будет тот же результат.

Вы также проглатываете исключение в блоке catch. Это не помогает в диагностике проблемы, поскольку она скрывает информацию, просто говоря «Не удалось», не предоставляя больше информации.