Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Как редактировать код в загруженных библиотеках?

#java #android #gradle #android_library


Здравствуйте, я загрузил библиотеку

compile 'com.daimajia.slider:library:1.1.5@aar'

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



Пожалуйста помогите!
    


Ответы

Ответ 1



Просто так вносить изменения в подключаемую через jar библиотеку нельзя. Для того, чтобы исправить баг клонируйте репозиторий с проектом к себе на машину, подключайте как локальный модуль и тогда уже вносите изменения в нее. Если вы используете у себя в проекте систему контроля версий git, то легче всего подключить библиотеку как подмодуль. Для этого: В командной строке переходите в коталог со своим проектом; Выполняете команду git submodule add git://github.com/path_to_lib; В корневом файле settings.gradle добавляете ее так include ':libName'; В build.gradle модуля приложения добавляете так compile project(':LibName:library'). После этого вы можете вносить изменения в библиотеку, которые потом будут отображены в вашем проекте. После чего вы легко сможете отправить pull request автору библиотеки с фиксом бага. Про то, как работать с подмодулями в гит, и как они себе ведут при коммите прочтите на официальном сайте(ссылка выше).

Ответ 2



Вбейте в гугл пакет библиотеки. По первой ссылке перейдите на страницу либы на GitHub-e Скачайте библиотеку как набор исходных файлов в архиве. Распакуйте архив. Откройте код в IDE Отредактируйте. Соберите *.jar файл библиотеки (опционально) Подключите исправленную версию библиотеки или с помощью файла из п.7 или добавьте проект с библиотекой в виде зависимости.

Ответ 3



Вы не можете изменять уже собранные библиотеки (строго говоря можете, но это плохой и сложный путь). Вы можете либо отнаследоваться от проблемного класса, исправить поведение в наследнике и использовать его если косяк не слишком глубокий. Либо если это open source библиотека форкуть её, исправить и либо отправить пулл реквест с исправлением автору оригинальной библиотеки что бы он включил его в свой репозиторий и обновил библиотеку, либо собрать свою реализацию и использовать её в своём проекте.

Ответ 4



При подключении библиотеки способом, который у вас в вопросе, вы получаете скомпилированный файл, который нельзя редактировать. Для решения вашей проблемы вам нужно подключить данную библиотеку в виде исходных кодов (пункт 3 ответа), если разработчик предоставляет такой формат распространения своей библиотеки (исходники) и внести исправления в своей локальной копии, либо, что предпочтительнее и правильнее, писать ему багрепорт, чтобы он исправил баг в новой версии своей библиотеки и использовать ее.

Комментариев нет:

Отправить комментарий