Android项目中,配置applicationId的android{...}块应放置在build.gradle的哪个位置?
关于Android Build.gradle中android{}块位置与applicationId配置的说明
Hey there! Let's clear up your questions step by step:
1. android{...}配置块的放置位置
首先要明确:你当前提供的是顶级(Project-level)build.gradle文件,这个文件负责配置所有子项目/模块共享的全局设置(比如仓库地址、插件版本、共享依赖版本变量),而android{...}配置块并不属于这里——它需要放在模块级(Module-level)build.gradle文件中,也就是你app模块下的app/build.gradle文件(这是绝大多数Android项目的默认模块路径)。
简单来说:
- 顶级build.gradle:管全局,所有模块共用的配置
- 模块级build.gradle:管单个应用模块的具体构建配置,比如编译版本、签名配置、applicationId、模块专属依赖等
2. 添加applicationId配置的方法
根据规范,applicationId需要在模块级build.gradle的android{}块下的defaultConfig{}子块中配置,具体步骤如下:
示例模块级build.gradle结构(包含applicationId)
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'io.fabric' android { // 配置编译相关参数,可与顶级文件里的support_version对应调整 compileSdkVersion 27 buildToolsVersion "27.0.3" defaultConfig { // 核心:添加你的应用唯一标识,格式通常为反向域名+应用名 applicationId "com.yourcompany.yourappname" minSdkVersion 16 targetSdkVersion 27 versionCode 1 versionName "1.0" multiDexEnabled true // 若用到multidex,可结合顶级定义的multidex_version } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } // 若使用dataBinding,可在此启用 dataBinding { enabled = true } } // 依赖部分可直接引用顶级build.gradle中定义的版本变量 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "com.android.support:appcompat-v7:$support_version" implementation "com.android.support.constraint:constraint-layout:$constraint_version" implementation "com.android.support:multidex:$multidex_version" // 其他所需依赖,比如crashlytics、rx系列等 implementation "com.crashlytics.sdk.android:crashlytics:$crashlytics_version" }
注意点
- applicationId是应用在应用商店和系统中的唯一标识,发布后尽量不要修改,否则会被视为不同应用
- 你当前的顶级build.gradle配置是合理的,那些
ext定义的共享版本变量可以直接在模块级build.gradle中引用,避免重复版本号
内容的提问来源于stack exchange,提问作者MikiBelavista
相关产品推荐
相关产品推荐

