AndroidStudio全局环境配置(config.gradle)

本文介绍了一种通过创建config.gradle文件来集中管理和简化Android项目依赖的方法,详细步骤包括在Project根目录新建配置文件、在build.gradle中引用以及在module.gradle中应用配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、新建config.gradle(名字可自定义)

在Project根目录新建file(与settings.gradle同级)
内容:
ext {
    android = [
            compileSdkVersion   : 27,
            //buildToolsVersion   : '27.0.2',
            //applicationId       : 'com.***.***',
            minSdkVersion       : 21,
            targetSdkVersion    : 27,
            versionCode         : 1,
            versionName         : 'v 1.1.0',
            defaultPublishConfig: 'release',
            publishNonDefault   : true
    ]
    dependencies = [
            "espresso-core"         : 'com.android.support.test.espresso:espresso-core:3.0.2',
            "runner"                : 'com.android.support.test:runner:1.0.2',

            "appcompat-v7"          : 'com.android.support:appcompat-v7:27.1.0',
            "support-v4"            : 'com.android.support:support-v4:27.1.0',
            "support-design"        : 'com.android.support:design:27.1.0',
            "recyclerview"          : 'com.android.support:recyclerview-v7:27.1.0',
            "support-annotations"   : 'com.android.support:support-annotations:27.1.0',
            "design"                : 'com.android.support:design:27.1.0',

            "junit"                 : 'junit:junit:4.12',
            "gson"                  : 'com.google.code.gson:gson:2.8.5',
            "rxandroid"             : 'io.reactivex.rxjava2:rxandroid:2.0.1',
            "rxjava"                : 'io.reactivex.rxjava2:rxjava:2.1.0',
            "constraint-layout"     : 'com.android.support.constraint:constraint-layout:1.1.0',
            "retrofit"              : 'com.squareup.retrofit2:retrofit:2.3.0',
            "converter-gson"        : 'com.squareup.retrofit2:converter-gson:2.3.0',
            "adapter-rxjava"        : 'com.squareup.retrofit2:adapter-rxjava2:2.3.0',
            "butterknife"           : 'com.jakewharton:butterknife:8.8.1',
            "butterknife-compiler"  : 'com.jakewharton:butterknife-compiler:8.8.1',
            "eventbus"              : 'org.greenrobot:eventbus:3.0.0',
            "easypermissions"       : 'pub.devrel:easypermissions:1.2.0',
            "logging-interceptor"   : 'com.squareup.okhttp3:logging-interceptor:3.8.0',
            "rxlifecycle"           : 'com.trello.rxlifecycle2:rxlifecycle:2.1.0',
            "rxlifecycle-components": 'com.trello.rxlifecycle2:rxlifecycle-components:2.1.0',
            "logger"                : 'com.orhanobut:logger:2.2.0',
            "takephoto_library"     : 'com.jph.takephoto:takephoto_library:4.0.3',
            "android-saripaar"      : 'com.mobsandgeeks:android-saripaar:2.0.3',
            "glide"                 : 'com.github.bumptech.glide:glide:3.7.0',
            "bga-swipebacklayout"   : 'cn.bingoogolapple:bga-swipebacklayout:1.2.0@aar'


    ]
}

2、在项目的build.gradle中添加

apply from: "config.gradle"

3、使用(2、在moule.gradle中写入配置信息)

apply plugin: 'com.android.library'

android {
    compileSdkVersion  rootProject.ext.android["compileSdkVersion"]
    defaultConfig {
        applicationId rootProject.ext.android["applicationId"]
        minSdkVersion rootProject.ext.android["minSdkVersion"]
        targetSdkVersion rootProject.ext.android["targetSdkVersion"]
        versionCode rootProject.ext.android["versionCode"]
        versionName rootProject.ext.android["versionName"]
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    api rootProject.ext.dependencies["constraint-layout"]
    api rootProject.ext.dependencies["junit"]
    api rootProject.ext.dependencies["runner"]
    api rootProject.ext.dependencies["espresso-core"]
    api rootProject.ext.dependencies["appcompat-v7"]
    api rootProject.ext.dependencies["design"]
    api rootProject.ext.dependencies["rxandroid"]
    api rootProject.ext.dependencies["rxjava"]
    api rootProject.ext.dependencies["gson"]
    api rootProject.ext.dependencies["retrofit"]
    api rootProject.ext.dependencies["converter-gson"]
    api rootProject.ext.dependencies["adapter-rxjava"]
    api rootProject.ext.dependencies["eventbus"]
    api rootProject.ext.dependencies["butterknife"]
    api rootProject.ext.dependencies["easypermissions"]
    api rootProject.ext.dependencies["logging-interceptor"]
    api rootProject.ext.dependencies["rxlifecycle"]
    api rootProject.ext.dependencies["rxlifecycle-components"]
    api rootProject.ext.dependencies["logger"]
    api rootProject.ext.dependencies["bga-swipebacklayout"]
    //annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'//取出了 apt的加入方式 改为annotationProcessor,另外将 路径apt的删除掉
}

最后重构项目即可

### 正确配置 Android Studio 项目中的 `build.gradle` 文件 #### 1. 理解 `build.gradle` 的作用 Android Studio 使用 Gradle 构建工具来管理项目。Gradle 脚本通常分为两种:一种是 **项目级**的 `build.gradle`,另一种是 **模块级**的 `build.gradle`。 - 项目级 `build.gradle` 主要定义全局依赖和插件设置[^3]。 - 模块级 `build.gradle` 则具体描述该模块的构建逻辑、依赖库以及编译选项。 --- #### 2. 配置项目级 `build.gradle` 以下是典型的项目级 `build.gradle` 配置: ```groovy // 定义插件及其版本 plugins { id 'com.android.application' version '7.4.0' apply false id 'com.android.library' version '7.4.0' apply false id 'org.jetbrains.kotlin.android' version '1.8.0' apply false } // 所有子项目的依赖项集中管理 allprojects { repositories { google() // 添加 Google Maven 库支持 mavenCentral() // 添加中央仓库支持 jcenter() // 已废弃但仍可能被部分旧项目使用 } } ``` 上述代码中: - 插件声明了 Android 和 Kotlin 支持,并设置了适用范围 (`apply false`),表示这些插件仅在特定模块中启用。 - `repositories` 块列出了所有可用的远程存储库地址,供下载依赖库使用[^1]。 --- #### 3. 配置模块级 `build.gradle` 模块级 `build.gradle` 更加细化,涉及应用的具体属性和依赖关系。以下是一个完整的例子: ```groovy plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdkVersion 33 // 设置目标 API 版本 defaultConfig { applicationId "com.example.myapp" minSdkVersion 21 // 最低兼容设备版本 targetSdkVersion 33 // 推荐的目标 SDK 版本 versionCode 1 // APK 内部版本号 versionName "1.0" // 用户可见的应用程序版本名 } buildTypes { release { // 发布模式配置 minifyEnabled true // 是否开启 ProGuard/DexGuard 混淆 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 自定义混淆规则文件路径[^5] } debug { // 调试模式配置 minifyEnabled false // 不进行代码混淆 } } } dependencies { implementation 'androidx.core:core-ktx:1.9.0' // 导入核心功能库 implementation 'com.google.android.material:material:1.8.0' // Material Design 组件 testImplementation 'junit:junit:4.+' // 单元测试框架 androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha06' // UI 测试框架 } ``` 说明如下: - `compileSdkVersion`, `minSdkVersion`, 和 `targetSdkVersion` 控制应用程序与不同 Android 设备的兼容性和行为。 - `defaultConfig` 提供默认构建参数,如包名(`applicationId`)、最低/最高 SDK 版本等。 - `buildTypes` 定义不同的构建变体(如调试版和发布版),并允许自定义每种类型的特性。 - `dependencies` 块列举了所需的所有外部库或组件。 --- #### 4. 如果使用 Kotlin DSL (`.gradle.kts`) 对于现代项目,推荐使用 `.gradle.kts` 格式的脚本替代传统的 Groovy 脚本。Kotlin DSL 可以提供更强的静态类型检查和支持 IDE 编辑器的功能提示。 下面展示了一个简单的 `.gradle.kts` 示例: ```kotlin plugins { id("com.android.application") version "7.4.0" apply false id("org.jetbrains.kotlin.android") version "1.8.0" apply false } allprojects { repositories { google() mavenCentral() } } ``` 注意,在这种情况下,版本号可以通过单独维护的 `libs.versions.toml` 文件统一管理[^4]。 --- #### 5. 关键注意事项 - **保持最新版本**:定期更新 Gradle Wrapper 和插件版本至官方建议的稳定版本。 - **清理缓存**:如果遇到奇怪错误,尝试执行命令 `./gradlew clean --refresh-dependencies` 清理本地缓存[^2]。 - **合理命名空间划分**:确保多个模块间的依赖清晰分离,避免循环依赖问题。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值