Не удается разрешить классы модулей в Android Studio - PullRequest
0 голосов
/ 11 мая 2018

У меня есть два отдельных проекта Android A и B. Я хочу использовать B в A, но я не хочу, чтобы он копировался в A. Я просто хочу, чтобы он использовал.

Итак, я добавляю это к проекту A's settings.gradle:

include ':ProjectA', ':ProjectB'

project(':ProjectB').projectDir = new File('/dir/dir/ProjectB/')

Синхронизация Gradle работает нормально, но когда я очищаю и перестраиваю, Project A не может разрешить символы в Project B.

Поэтому я нажимаю Alt-Enter на неразрешенных символах и нажимаю «добавить зависимость от модуля Project B», который затем добавляет в файл gradle.build Project A следующее:

compile project(path: ':ProjectB')

Но clean + build тоже не работает.

Я пытался изменить на

compile project(path: ':ProjectB', configuration: 'default')

и

implementation project(path: ':ProjectB')

но они тоже не работают. Есть идеи?

Использование gradle 3.1.2, Android 3.1.2. Ubuntu 16.04 LTS.

выход

ProjectA/build.gradle   
Unable to resolve dependency for ':ProjectA@debug/compileClasspath': Could not resolve project :ProjectB.   
Unable to resolve dependency for ':ProjectA@debugAndroidTest/compileClasspath': Could not resolve project :ProjectB.    
Unable to resolve dependency for ':ProjectA@debugUnitTest/compileClasspath': Could not resolve project :ProjectB.   
Unable to resolve dependency for ':ProjectA@release/compileClasspath': Could not resolve project :ProjectB. 
Unable to resolve dependency for ':ProjectA@releaseUnitTest/compileClasspath': Could not resolve project :ProjectB. 

1 Ответ

0 голосов
/ 11 мая 2018

Какой еще кошмар.Единственный способ, которым я мог решить эту проблему, заключался в следующем: я считаю, что это правильный путь.

Создайте библиотеку Android (не библиотеку Java или вы не можете использовать функции Android), затем загрузите свою библиотекуклассы / файлы и настройте ваш gradle с помощью соответствующих операторов реализации (т.е. зависимостей).Но вы должны быть осторожны, потому что Android Studio (AS) создает модули «приложение» и «библиотека» в одном проекте.Поэтому убедитесь, что вы поместили свои библиотечные классы в правильный модуль, иначе он не будет генерировать файл AAR (в отличие от JAR), который вы будете включать извне в другом месте.После создания проекта вы найдете файл AAR в каталоге build/outputs/aar.

Хорошо, теперь вы можете создать отдельное приложение и использовать файл AAR в качестве зависимости.Создав новый основной проект, перейдите в «Структура проекта» и нажмите «* 1006» в левой части окна, чтобы добавить новый модуль.Выберите Import JAR / AAR из меню и направьте селектор в ваш файл AAR в папке build, упомянутой выше.Нажмите OK, чтобы вернуться в главное окно.Затем выберите модуль основного приложения, затем перейдите на вкладку Зависимости и нажмите +, чтобы добавить модуль.Выберите модуль AAR из списка, затем нажмите OK, чтобы выйти.

Теперь система должна распознавать ваши классы и не иметь неопределенных символов.Это отлично сработало, и мне это очень нравится, так как в нем используется хороший компактный файл AAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...