apply plugin: 'com.android.library' String SDK_DIR = System.getenv("ANDROID_HOME") if (SDK_DIR == null) { Properties props = new Properties() props.load(new FileInputStream(project.rootProject.file("local.properties"))) SDK_DIR = props.get('sdk.dir') } android { compileSdkVersion 29 defaultConfig { minSdkVersion 29 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') compileOnly files('libs/framework.jar') compileOnly files('libs/com.huanglong.android.tvapi.jar') } String BIN_PATH = System.getenv("BINARY_PATH") task copyPrivJars(type:Copy) { from "${SDK_DIR}/platforms/android-29/framework.jar" into "libs/" from "${BIN_PATH}/packages/TvmwLib/classes.jar" into "libs/" rename 'classes.jar', 'com.huanglong.android.tvapi.jar' } preBuild.dependsOn 'copyPrivJars' task dexClasses(description: 'Create dex file from classes.jar') { // Add dependent tasks, e.g dexDebugClasses and dexReleaseClasses later // Make assemble task depend on this task so that it will be executed during assembling } assemble.dependsOn 'dexClasses' String DEX_DIR = "$buildDir/outputs/dex" task createDexDir { doFirst { mkdir DEX_DIR } } android.libraryVariants.all { variant -> String BUILD_TOOLS_VERSION = project.android.buildToolsVersion String DEX = "${SDK_DIR}/build-tools/${BUILD_TOOLS_VERSION}/dx" String DEX_TOOL = org.gradle.internal.os.OperatingSystem.current().windows ? "${DEX}.bat" : "${DEX}" String dexVariantName = "dex${variant.buildType.name.capitalize()}Classes" dexClasses.dependsOn "$dexVariantName" task (dexVariantName, type: Exec) { dependsOn 'createDexDir' dependsOn "assemble${variant.buildType.name.capitalize()}" String inputFile = "${buildDir}/intermediates/aar_main_jar/${variant.buildType.name}/classes.jar" String outputFile = "${DEX_DIR}/classes.dex" commandLine("${DEX_TOOL}", "--dex", "--output=${outputFile}", "${inputFile}") } } task makeJar(type: Jar) { baseName = "com.dolphin.dtv" from('build/outputs/dex/classes.dex') include('classes.dex') doLast { delete 'libs/com.huanglong.android.tvapi.jar' delete 'libs/framework.jar' } } makeJar.dependsOn(build)