Подтвердить что ты не робот

Android Studio - создание модулей без копирования файлов?

Я создаю проекты с зависимостями в Android Studio. Я знаю, как связывать проекты, добавляя модули.

Но я понял, что "импорт модулей" создает копию libProject внутри проекта.

Есть ли способ предотвратить это? Как "внешний модуль"?

Поскольку я отвечаю за оба проекта, я хочу иметь возможность вносить изменения в libProject Repo, не копируя файлы папок между папками.

Спасибо

4b9b3361

Ответ 1

Да, вы можете это сделать. Для этого модуля должен быть создан файл сборки Gradle. Если это получилось, тогда в проекте, к которому вы привязаны, добавьте его в файл settings.gradle в корне проекта:

include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')

где путь, который вы указываете во второй строке, - это путь к каталогу, содержащему файл библиотеки build.gradle. Путь может быть относительным или абсолютным.

Ответ 2

Решение:

include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')

не работал у меня. После нескольких потраченных впустую часов я понял вопрос. Есть два файла build.gradle, один для проекта и один для имени библиотеки. Если библиотека находится в папке '\ MyLib', тогда будет build.gradle в '\ MyLib', а другой в '\ MyLib\app'. Вы должны указать на '\ MyLib\app', а не '\ Mylib.

Надеюсь, это сэкономит некоторое время другим.

Ответ 3

Вы также можете использовать android {sourceSets {main.java.srcDirs + = '../../../library/src'}} в своем приложении build.gradle. Не уверен в поддержке всех ресурсов Android, для чистой библиотеки Java хорошо работает.

Ответ 4

Если у вас, как и я, у меня есть несколько модулей (сегодня я понял, что только копии были включены, я думал, что проект включает ссылки на источник.)

У вас может быть несколько модулей/проектов по строкам: -

include ':app', ':sqlwords', ':dbindex', ':dbcolumn', ':dbtable', ':dbdatabase', ':displayhelp', ':pickdate'
project(':sqlwords').projectDir= new File('d:/Android_Applications/Modules/sqlwords')
project(':dbcolumn').projectDir= new File('d:/Android_Applications/Modules/dbcolumn')
project(':dbtable').projectDir= new File('d:/Android_Applications/Modules/dbtable')
project(':dbindex').projectDir= new File('d:/Android_Applications/Modules/dbindex')
project(':dbdatabase').projectDir= new File('d:/Android_Applications/Modules/dbdatabase')
project(':displayhelp').projectDir= new File('d:/Android_Applications/Modules/displayhelp')
project(':pickdate').projectDir= new File('d:/Android_Applications/PickDateShowCase/pickdate')