Поэтому я использую внешнюю (неофициальную) библиотеку, которая просматривает различные группы на сайте https://www.metal -archives.com / и позволяет вам получать из нее информацию, такую как записи и треклисты.
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я запрашиваю поиск, что-то идет не так с подключением к сайту (?), А затем происходит сбой приложения. ADB Logcat показал, что он генерирует некоторые исключения IllegalStateException, но я не уверен, как их исправить.
(Неофициальный) API, который я использую: https://github.com/Loki-Afro/metalarchives
Я добавил его в свое приложение с помощью Gradle, и все функции отображаются в моем коде, поэтому он был правильно добавлен в проект:
implementation 'com.github.loki-afro:metalarchives-api:0.5.0'
В API есть несколько примеров классов, которые я пытался выполнить как этот (не работает подтверждение), но использование примера использования в readme.md на github также вызывает у меня такие же сбои.
Мой код получает строку из EditText и передаетэто функция getBand (), которая отвечает за поиск.Это выполняется с помощью кнопки onClick.
public void doSearchAndUpdateResults(View view){
EditText searchMetalArchivesBar = findViewById(R.id.searchMetalArchives);
TextView resultView = findViewById(R.id.queryResult);
String search = searchMetalArchivesBar.getText().toString();
try {
resultView.setText(getBand(search));
} catch (MetallumException e){
e.printStackTrace();
}
}
public String getBand(String bandToSearchFor) throws MetallumException{
BandSearchService bandSearchService = new BandSearchService();
bandSearchService.setLoadSimilar(true);
BandSearchQuery bandSearchQuery = new BandSearchQuery();
bandSearchQuery.setBandName(bandToSearchFor, true);
bandSearchQuery.setGenre("Black Metal");
bandSearchQuery.setLabel("*", false);
bandSearchQuery.setYearOfFormationFrom(1970);
bandSearchQuery.setProvince("*", "*");
bandSearchQuery.setLyricalThemes("*");
bandSearchService.performSearch(bandSearchQuery);
if (!bandSearchService.isResultEmpty()) {
return bandSearchService.getResultAsList().get(0).getName();
}
return "no band found";
}
Я уже пытался добавить apache в мой файл сборки Gradle, но он выдал мне двойную ошибку.