2014-09-01 3 views
5

Может ли кто-нибудь объяснить, что означает команда инструментов Android в этом коротком параграфе, приведенном ниже?Объясните стратегию переходных зависимостей, описанную в документации на Android Build

В частности: Что такое "somelib.jar"?

Являются ли они предполагающими, что я создаю новый субпроект, который имеет только зависимости, назовите его «projectA», а затем опубликуйте проект «projectA.jar»? (using artifacts.add ("default", file ('projectA.jar'))

Предполагаемое поведение, которое я хочу, состоит в том, чтобы публиковать «projectA.jar» вместе со своими зависимостями, не вызывая каких-либо «множественных файлов dex», ошибки

http://tools.android.com/tech-docs/new-build-system/tips#TOC-Handling-transitive-dependencies-for-local-artifacts-jars-and-aar-

Цитата:.

Если у вас есть локальная баночку или библиотеку AAR, который вы хотите использовать в более , чем один проект, вы не можете просто ссылаться на него непосредственно, как местный зависимость это. ause плагин android будет жаловаться, если он находит тот же самый файл jar дважды при разработке проекта и всех его зависимостей . (Обратите внимание: прямо сейчас вы не можете использовать локальный файл , даже если вы ссылаетесь только на него).

Один из способов исправить это, чтобы развернуть артефакт в репозитории. В то время как возможно, это может быть не удобно из-за накладных расходов , управляющих таким репозиторием.

Другой вариант - создать новый подпроект Gradle и сделать этот артефакт проекта файлом jar или aar, который вы хотите использовать повторно для использования . Тогда вы можете просто использовать другие подпроекты Gradle в зависимости от этого нового подпроекта.

В этом новом суб-проекта, просто создать build.gradle с следующее:

configurations.create ("по умолчанию")

artifacts.add ("по умолчанию", файл ('somelib .jar '))

ответ

0

По-моему, это в основном используется для библиотечного модуля.

Если один модуль библиотеки зависит от somelib.jar, другой модуль приложения, который зависит от модуля библиотеки, также зависит от somelib.jar, то могут возникнуть ошибки «множественные файлы с файлами dex».

Как «Советы» говорят, что проблема может быть решена путем создания простого модуля, который не в состоянии опубликовать *.jar или *.aar и используется только быть зависят от других модулей, только с зависимостью *.jar с. При этом выход *.aar библиотечного модуля не будет включать somelib.jar.

Смежные вопросы