Используя Android Studio, мое приложение использует библиотеку, которая внутренне использует "org.glassfish.jersey" для выполнения HTTP-запросов. Когда мое приложение запускается, оно постоянно генерирует следы стека, что говорит о том, что оно не может разрешить "org.osgi.framework.SynchronousBundleListener"
I / zygote: Отклонение повторной инициализации в ранее не пройденном классе
java.lang.Class:
java.lang.NoClassDefFoundError: Не удалось разрешить:
Lorg / OSGi / рамки / SynchronousBundleListener
at org.glassfish.jersey.internal.ServiceFinder org.glassfish.jersey.internal.ServiceFinder.find (java.lang.Class) (ServiceFinder.java:288)
at void org.glassfish.jersey.client.ClientConfig $ State. (Org.glassfish.jersey.client.JerseyClient) (ClientConfig.java:152)
К сожалению, я не понимаю, что такое OSGI. (Я нашел страницы, которые говорят о «связках» OSGI и компонентной модели OSGI, но мне не нужно напрямую использовать OSGI.) Это просто зависимость, которая необходима и отсутствует.
Мой проект использует файл "build.gradle" для объявления зависимостей, например, кажется, что моя зависимость от "org.glassfish.jersey" объявлена со следующим:
implementation 'org.glassfish.jersey.core:jersey-client:2.17', {
exclude group: 'org.glassfish.hk2.external'
}
Но мой файл "build.gradle" не упоминает "osgi" как зависимость.
Как я могу сделать классы "org.osgi.framework" доступными для библиотеки, которая нуждается в них? Есть ли строка implementation
, которую я мог бы добавить в свой файл "build.gradle", или внешний jar-файл, который мне нужно скачать?