How to update an imported module in Android Studio?

AndroidAndroid StudioImport Module

Android Problem Overview


While I develop an Android App, I have a library which I have created as separate Android Studio project and can use it by inserting it into new projects. I insert the library by choosing 'File|New|Import Module...' option.

The thing is that after the import, Gradle creates a hard copy of my library. If I change the library code in main external project, the code inside the project which is using the library won't get updated.

How can I have a library and share it among many project? I need to change the library in one single place and then all other projects which are using it get the update.

I found this post also which has no answer:

https://stackoverflow.com/questions/26962948/how-to-update-imported-modules-with-code-modification-from-the-their-external-li

Android Solutions


Solution 1 - Android

OK I found the answer by myself:

You must not add the external library as an existing module. It will make a copy of it under your project folder.

What you have to do is:

  1. Delete the library folder in your current project. (You can also delete the ./idea/modules/[module_name] folder.)
  2. Open the setting.gradle file and add these:
include ':your_external_library_module_name'
project (':your_external_library_module_name').projectDir = new File('../path/to/your/external/library')

include ':perhaps_second_external_library'
project (':perhaps_second_external_library').projectDir = new File('../path/to/your/second/external/library')
  1. In your build.gradle (:app) file add dependency as:
dependencies {
    implementation project(':your_external_library_module_name')
    implementation project(':perhaps_second_external_library')
}
  1. Sync the project and you are done.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEhsanView Question on Stackoverflow
Solution 1 - AndroidEhsanView Answer on Stackoverflow