Библиотека единиц измерения JScience несовместима с Android
У меня есть сценарий использования в моем приложении для Android, где мне нужно сохранить количество, выполнить вычисления и отобразить его в единицах по выбору пользователя (из предварительно определенного списка).
JScience идеально подходит для этого, но я не могу скомпилировать приложение для Android из-за следующей ошибки:
Error: Program type already present: javolution.ContextTestSuite$1
Отмечу, что JSCience работает на javolution. Это оставляет меня с двумя вариантами: найти другую библиотеку (я нашел JSR-363 API, но мне не удалось найти документацию по ней, за исключением нескольких случаев использования, как описано в ссылках в этом ответе SO; например, те, ссылки не обсуждают конкретные типы юнитов и где их можно найти) или исправляют несовместимость, которую я испытал между JScience и Android.
Я приму решение, которое делает любой из них.
1 ответ
Не уверен, что еще использует это, но это вызвано двойной зависимостью javolution. То, что вы можете сделать, находится в файле build.gradle (приложение модуля), вы можете исключить javolution, когда включите jscience.
dependencies {
implementation 'com.android.support:support-v4:28.0.0'
...
implementation('org.jscience:jscience:4.3.1') {
exclude group: "org.javolution"
}
}
Очистите / Перестройте Проект, и он должен работать.