Gradle: тип программы уже присутствует

Я пытаюсь начать работать с проектом libaums (https://github.com/magnusja/libaums). Я написал журнал класса, который отражает методы android.util.Log, но записывает все в файл (поскольку я не могу получить доступ к выходному потоку отладки на Android). Я не мог понять, как собрать пакет из написанного мной модуля и включить его как локальную зависимость в проект libaums ( Компиляция Gradle: пакет не найден ), поэтому я решил просто импортировать Log.java (это пакет com.iglogger, который реализует Log class) в обоих проектах libaums (приложение и фактическая библиотека libaums). Это, в свою очередь, создало проблему на этапе слияния файлов dex - так что проект приложения зависит как от класса Log, так и от libaums, и все же libaums также использует класс Log.

13684:09:44:38.705 [ERROR] [com.android.build.gradle.internal.tasks.DexMergingTaskDelegate] java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
13861:Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
13649:09:44:38.698 [ERROR] [org.gradle.api.Project] D8: Program type already present: com iglogger.Log
13685:Program type already present: com.iglogger.Log
13862:Program type already present: com.iglogger.Log
13871:Program type already present: com.iglogger.Log

После некоторых исследований решение, похоже, заключается в том, что мне нужно исключить зависимость от Log.java (т.е. com.iglogger.Log) при импорте libaums в проект приложения. Но как именно я предполагаю сделать это в моем случае? Кажется, я объявил зависимость от Log.java в проекте libaums, чтобы позже я мог ее исключить. Верно? Если да, то как?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
361
1

Ответы 1

Таким образом, проблема решилась удалением файлов (com/iglogger) из проекта приложения, который зависит от проекта lib. т.е. оператор Импортировать в java, по-видимому, включает не только объявление используемых пакетов, но и, по выбору, объекты самих пакетов.

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