2015-01-15 1 views
-2

Я знаю, что этот вопрос задавали раньше, но сейчас нет подходящего решения, поэтому я собираюсь попросить его снова. Как я могу загрузить файл совы в моем проекте Android?Загрузка файла совы в android

Код работает в java, но они бесполезны в android. Когда я пытаюсь использовать их в проекте Android, файл не может быть подключен. Я использую OWLApi 3.4.10. Я загружаю онтологию из своего класса mainActivity. Загрузка выполняется методом loadOntology в классе OntologyClass. В основной метод кодирования как

@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

Борьба Построить ошибку пути: Обычно, если вы используете филин апи в Java, то все, что вам нужно, это просто импортировать библиотеку филин апи. Но в android, если вы делаете только это, вы все равно получите сообщение об ошибке «метод не найден». Таким образом, вы должны выполнить второй шаг т.е. щелкните правой кнопкой андроида проект, а затем

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

и там галочка на OWLAPi 3.4.10.jar

ответ на путь к файлу в папке активов находится в следующим образом:

каталог/путь Theowl файла в папке утверждает могут быть доступны через InputStream класс класс файла не работает для этой папки, поэтому вместо того, чтобы использовать

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

использовать этот код

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

и, наконец, использовать экземпляр InputStream является, это представляет собой правильный путь к файлу в активах папки т.е.

pizza = manager.loadOntologyFromOntologyDocument(is); 
+0

Вопрос в его нынешнем виде применим только для людей, которые ищут способы открыть файл, который является частью активов apk. Можете ли вы добавить сведения о предыдущей ошибке сборки и как ее исправить? Это может иметь отношение к другому пользователю, имеющему проблемы с API OWL. – Ignazio

+0

@Ignazio извините, я не получил термин «предыдущая ошибка сборки». – user2083529

+0

Вы сказали, что произошла ошибка в пути сборки, когда у вас был метод, который не нашел ошибку. – Ignazio