ini4j работает только из каталога libs, а не maven

Я пытаюсь использовать ini4j в приложении для Android, скомпилированном в AIDE IDE. Когда я помещаю ini4j-0.5.4.jar в папку libs в моем приложении, это работает. Тем не менее, когда я включаю ini4j со строкой compile 'org.ini4j:ini4j:0.5.4' в моем build.gradle я получаю ошибку bad utf-8 byte a0 at offset 00000004, Я проверил файл jar в каталоге Maven, и он идентичен файлу в моей папке libs. У обоих есть SHA1 4a3ee4146a90c619b20977d65951825f5675b560, Я понятия не имею, что может быть причиной этого.

РЕДАКТИРОВАТЬ: По какой-то причине, он, кажется, имеет в качестве зависимости xerces, которая, как известно, библиотека имеет эти проблемы.

1 ответ

Согласно Apache ( http://xerces.apache.org/xerces2-j/install.html), xerces.jar теперь устарел и переименован в xercesImpl.jar, поэтому вы должны придерживаться старого JAR.

xerces.jar больше не доступен в основном дистрибутиве. Вы по-прежнему можете загрузить этот jar из устаревшего дистрибутива. xerces.jar - это файл Jar, который содержит все файлы классов анализатора (т. е. содержит пересечение содержимого xercesImpl.jar и xml-apis.jar).

Чтобы быть более понятным, технические детали:

  1. Старый xerces.jar, который у вас есть в папке libs, работает из-за внутренней структуры папок.

  2. Новые xerces из репозитория имеют другую структуру папок, и некоторые странные байты в кодировке UTF AIDE не понимает.

Другие вопросы по тегам