allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = "../build" subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { project.android { compileSdkVersion 36 } } } project.buildDir = "${rootProject.buildDir}/${project.name}" project.evaluationDependsOn(':app') plugins.withId('com.android.library') { extensions.configure(com.android.build.gradle.LibraryExtension) { android -> def manifestFile = android.sourceSets.main.manifest.srcFile def packageName = null if (manifestFile.exists()) { def manifestContent = new XmlParser().parse(file(manifestFile)) packageName = manifestContent.@package } if (!android.hasProperty("namespace") || android.namespace == null || android.namespace.isEmpty()) { if (packageName) { println ">> Derived Namespace for: '${project.name}' to '${packageName}'" android.namespace = packageName } else { def defaultNamespace = "com.example.${project.name}" println "?? Made up Namespace for: '${project.name}' to '${defaultNamespace}'" android.namespace = defaultNamespace } } } } } tasks.register("clean", Delete) { delete rootProject.buildDir }