Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sync shared library projects/modules with its source

Tags:

android

I am learning to build Android shared libraries that can be used with different projects. I got a few questions regarding this subject. Before I go into the questions, below is what I have done so far:

  • Create a library project
  • Create another application project and import above library as a module

My questions are:

  • Is the library project's code automatically synchronized with the one imported into application projects? How it can be achieved?
  • If not, what else I can do to make sure I just need to update the shared library once?

I am using Android Studio IDE.

Thank you,

like image 547
Ralphilius Avatar asked Jul 11 '15 15:07

Ralphilius


2 Answers

Ah yes, this can be very helpful in many cases. You can do the following to achieve this.

Let's say you have two projects - MyApplication and MyLibraryDemo containing the library module libmodule with the following paths:

MyApplication - "/../AndroidStudioProjects/MyApplication"

MyLibraryDemo - "/../AndroidStudioProjects/MyLibraryDemo"

libmodule - "/../AndroidStudioProjects/MyLibraryDemo/libmodule"

And let's say you are trying to use libmodule in MyApplication. Then, in your settings.gradle of your MyApplication project, do this

include ':app', ":libmodule" project(':libmodule').projectDir = new File(settingsDir, '../MyLibraryDemo/libmodule') 

You may have to make relevant corrections, but I hope the idea of linking another module is clear.

All the best :)

like image 146
Awanish Raj Avatar answered Oct 21 '22 10:10

Awanish Raj


Importing a module from outside of your application project creates a copy of the library inside of your application. If your system supports it, creating a symbolic link will allow you to have only one copy of the code.

Otherwise, you can move the entire library project into your application and add it to your settings.gradle.

If you wish to have separate git repositories for both of these projects, look into using git submodules.

like image 21
afathman Avatar answered Oct 21 '22 08:10

afathman