2014-12-05 2 views
0

Я чем-то смущен. Я работаю над Android-приложением с двумя модулями. Вот моя структура проектаПроблемы с зависимостями, модулями. Как правильно ссылаться на эту библиотеку?

MyProject 
    app 
     libs 
     abc.jar 
     src 
     etc... 
    importedProject 
     libs 
     src 
     etc... 
     build.gradle 
    build.gradle 

Если я правой кнопкой мыши на abc.jar и выберите Add as Library..., диалоговое окно появляется спрашивать меня, какой модуль добавить с опциями app и importedProject.

Если я выберу importedProject, он добавит зависимость от файла build.gradle импортируемогоProject .. но он использует полный путь к файлу на моем жестком диске.

compile files('C:/Users/my.name/workspace/MyProject/app/libs/abc.jar') 

Я очень смущен, почему он использует полный локальный путь, а не относительный. Android Studio даже предупреждает меня не делать этого, но он делает это для меня.

Я попробовал это, и ни работа:

compile files('app/libs/abc.jar') 
compile files('MyProject/app/libs/abc.jar') 

Каждый знает, что я здесь делаю неправильно? Спасибо

EDIT:

Понял работать с помощью:

compile files('../app/libs/abc.jar') 

Однако, я читал, что использование относительных путей является плохой идеей. Есть ли лучшее решение?

ответ

1

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

compile files("${rootProject.projectDir}/app/libs/abc.jar") 
+0

Большое спасибо. Однако, похоже, он не работает. Я изменился с '' ../ app/libs/abc.jar '' на '' $ {rootProject.projectDir} /app/libs/abc.jar "и не поймал его. – user1003916

+0

Является ли это правильной многопроектной сборкой. Можете ли вы разместить содержимое вашего * settings.gradle * файла? –

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