Create a Library Module
1. Click on File => New => New Module.
2. On the next window select Android Library as a template and enter your module name as shown in the image and click on Finish.
3. When you click on Finish the gradle build will start and add the newly created module to your project.
The below image shows the project structure before creating the library module and you can see there is only an app module.
The below image shows the structure after creating the library module and you can see that the new module is visible ie. networkmodule.
Now let’s see what happened under the hood when we created the library module.
For Old Version:
build.gradle (Project: Level)
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.1.0' classpath 'com.google.gms:google-services:4.3.14' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10' } } allprojects { repositories { google() mavenCentral() maven { url 'https://jitpack.io' } jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
For New Version:
build.gradle (Project: Level)
plugins { id("com.android.application") version "8.2.1" apply false id("org.jetbrains.kotlin.android") version "1.9.0" apply false id("com.android.library") version "8.2.1" apply false }
build.gradle (Module :app)
//Old version plugins { id 'com.android.application' id("org.jetbrains.kotlin.android") id("maven-publish") } //New Version plugins { id("org.jetbrains.kotlin.android") version "1.9.0" apply false id("maven-publish") } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } implementation project(":customtoast") //your module name
build.gradle (Module :customtoast)
//Old version plugins { id 'com.android.application' id("org.jetbrains.kotlin.android") id("maven-publish") } //New Version plugins { id("org.jetbrains.kotlin.android") version "1.9.0" apply false id("maven-publish") } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } afterEvaluate { publishing { publications { release(MavenPublication) { from components.release // or components.android if needed groupId = 'com.nbsoftdev' //package name artifactId = 'customtoast' //module name version = '1.0.6' } } } }