You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用多项目架构实现Android Gradle单文件构建

单build.gradle文件Android项目构建操作步骤

前置清理

  • 移除项目根目录下的settings.gradle文件
  • 删除默认app模块目录下的build.gradle文件,仅保留根目录下的1个build.gradle文件作为唯一配置文件

编写build.gradle配置

Gradle 7.0+版本参考配置如下:

// 顶部声明插件
plugins {
    id 'com.android.application' version '7.4.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}

// 全局公共配置
ext {
    compileSdk = 33
    minSdk = 21
    targetSdk = 33
    versionCode = 1
    versionName = "1.0"
}

// 全局仓库配置
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

// 应用插件
apply plugin: 'com.android.application'
apply plugin: 'org.jetbrains.kotlin.android'

// Android项目配置
android {
    namespace "com.example.myapplication"
    compileSdk rootProject.ext.compileSdk

    defaultConfig {
        applicationId "com.example.myapplication"
        minSdk rootProject.ext.minSdk
        targetSdk rootProject.ext.targetSdk
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    // 指定源码、资源路径,对应原app模块的目录结构
    sourceSets {
        main {
            manifest.srcFile 'app/src/main/AndroidManifest.xml'
            java.srcDirs = ['app/src/main/java']
            res.srcDirs = ['app/src/main/res']
            assets.srcDirs = ['app/src/main/assets']
        }
        test.srcDirs = ['app/src/test/java']
        androidTest.srcDirs = ['app/src/androidTest/java']
    }
}

// 依赖配置
dependencies {
    // 依赖写法和原模块级build.gradle完全一致
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
}

如果使用Gradle 7.0以下版本,将顶部plugins块替换为传统buildscript配置即可:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'
    }
}

可选调整

如果不想保留原app目录结构,可以把app/src下的所有文件移到根目录src文件夹下,同步修改sourceSets里的路径为对应根目录路径即可。


内容的提问来源于stack exchange,提问作者Gieted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:27:07