本地构建module模块的AAR  
gradle.properties  
isCommonApp =  false 
  
 模块的build.gradle  
apply plugin: 'com.android.library':module模块编译manifest.srcFile 'src/main/AndroidManifest.xml':读取没有启动App和Activity的配置文件  
if  ( isCommonApp. toBoolean ( ) ) { apply plugin:  'com.android.application' 
} else { apply plugin:  'com.android.library' 
} 
apply plugin:  'kotlin-android' 
apply plugin:  'kotlin-kapt' android { namespace 'com.example.lib_common' compileSdk 34 sourceSets{ main{ if  ( isCommonApp. toBoolean ( ) )  { manifest. srcFile 'src/main/java/moduleDebug/AndroidManifest.xml' }  else  { manifest. srcFile 'src/main/AndroidManifest.xml' } } } signingConfigs{ release{ storeFile file ( '../build_keystore/release.jks' ) storePassword '19980226' keyAlias 'release_key' keyPassword '19980226' } } defaultConfig { if  ( isCommonApp. toBoolean ( ) ) { applicationId "com.example.lib_common" } minSdk 24 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" } buildTypes { release { signingConfig signingConfigs. releaseminifyEnabled false proguardFiles getDefaultProguardFile ( 'proguard-android-optimize.txt' ) ,  'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion. VERSION_17targetCompatibility JavaVersion. VERSION_17} kotlinOptions { jvmTarget =  '17' } } dependencies { api libs. androidx. core. ktxapi libs. androidx. appcompatapi libs. materialapi libs. androidx. activityapi libs. androidx. constraintlayoutapi libs. junitapi libs. androidx. junitapi libs. androidx. espresso. coreapi "androidx.lifecycle:lifecycle-process:2.6.2" 
} 
  
 读取没有启动页的AndroidManifest.xml  
< ?xml version = "1.0"  encoding = "utf-8" ?> 
< manifest> 
< /manifest> 
  
Gradle指令编译AAR  
./gradlew :lib_common:assembleDebug
  
 
 本地构建module模块的APK  
gradle.properties  
isCommonApp =  true 
  
 模块的build.gradle  
apply plugin: 'com.android.application':app模块编译manifest.srcFile 'src/main/java/moduleDebug/AndroidManifest.xml':读取指定启动App和Activity的配置文件  
if  ( isCommonApp. toBoolean ( ) ) { apply plugin:  'com.android.application' 
} else { apply plugin:  'com.android.library' 
} 
apply plugin:  'kotlin-android' 
apply plugin:  'kotlin-kapt' android { namespace 'com.example.lib_common' compileSdk 34 sourceSets{ main{ if  ( isCommonApp. toBoolean ( ) )  { manifest. srcFile 'src/main/java/moduleDebug/AndroidManifest.xml' }  else  { manifest. srcFile 'src/main/AndroidManifest.xml' } } } signingConfigs{ release{ storeFile file ( '../build_keystore/release.jks' ) storePassword '19980226' keyAlias 'release_key' keyPassword '19980226' } } defaultConfig { if  ( isCommonApp. toBoolean ( ) ) { applicationId "com.example.lib_common" } minSdk 24 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" } buildTypes { release { signingConfig signingConfigs. releaseminifyEnabled false proguardFiles getDefaultProguardFile ( 'proguard-android-optimize.txt' ) ,  'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion. VERSION_17targetCompatibility JavaVersion. VERSION_17} kotlinOptions { jvmTarget =  '17' } } dependencies { api libs. androidx. core. ktxapi libs. androidx. appcompatapi libs. materialapi libs. androidx. activityapi libs. androidx. constraintlayoutapi libs. junitapi libs. androidx. junitapi libs. androidx. espresso. coreapi "androidx.lifecycle:lifecycle-process:2.6.2" 
} 
  
 读取有启动页的AndroidManifest.xml  
< ?xml version = "1.0"  encoding = "utf-8" ?> 
< manifest xmlns:android= "http://schemas.android.com/apk/res/android" > < application android:name= ".LibCommonApp" android:theme= "@style/Theme.AppCompat" > < activity android:name= ".LibCommonActivity" > < intent-filter> < action android:name= "android.intent.action.MAIN"  /> < category android:name= "android.intent.category.LAUNCHER"  /> < /intent-filter> < /activity> < /application> 
< /manifest> 
  
Gradle指令编译APK  
./gradlew :lib_common:assembleDebug