【Android Gradle 插件】DexOptions 配置 ③ ( additionalParameters 属性配置 | 多 dex 参数配置 | --multi-dex 参数 )

2023-03-30 15:22:15 浏览数 (1)

文章目录

  • 一、dx --multi-dex 参数
    • 1、--multi-dex 参数简介
    • 2、--multi-dex 参数配置示例
  • 二、BuildType#multiDexEnabled 属性配置多 dex
    • 1、BuildType#multiDexEnabled 属性
    • 2、配置示例

Android Plugin DSL Reference 参考文档 :

  • 文档主页 : https://google.github.io/android-gradle-dsl/2.3/
  • BaseExtension 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.BaseExtension.html
  • AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html
  • build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
  • ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
  • ProductFlavor#externalNativeBuild 配置 ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild
  • ExternalNativeBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html
  • NdkBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild#ndkBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html
  • CmakeOptions ( build.gradle#android#defaultConfig#externalNativeBuild#cmake 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html
  • JackOptions ( build.gradle#android#defaultConfig#jackOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html
  • AnnotationProcessorOptions ( 注解处理器配置 ) ( build.gradle#android#defaultConfig#javaCompileOptions配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html
  • NdkOptions ( build.gradle#android#defaultConfig#ndk 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.NdkOptions.html
  • VectorDrawablesOptions ( build.gradle#android#defaultConfig#vectorDrawables 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
  • BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html
  • SigningConfig ( build.gradle#android#signingConfigs 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.SigningConfig.html
  • AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
  • AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html
  • AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置 :android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceDirectorySet.html
  • AndroidSourceFile ( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html
  • DataBindingOptions ( build.gradle#android#dataBinding ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DataBindingOptions.html
  • DexOptions ( build.gradle#android#dexOptions ) 文档位置 : https://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DexOptions.html
  • NDK 参考文档 : Add C and C Code to Your Project.

一、dx --multi-dex 参数


DexOptions ( build.gradle#android#dexOptions ) 文档位置 : https://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DexOptions.html

1、–multi-dex 参数简介

参考 【Android Gradle 插件】DexOptions 配置 ② ( additionalParameters 属性配置 | dx 工具 | dx 附加参数 ) 博客 , dx 附加参数可以配置在 " build.gradle#android#dexOptions#additionalParameters " 设置中 ;

dx 工具的 --multi-dex 参数作用是 允许生成多个 dex 文件 ;

–multi-dex 参数文档 :

代码语言:javascript复制
    --multi-dex: allows to generate several dex files if needed. This option is
    exclusive with --incremental, causes --num-threads to be ignored and only
    supports folder or archive output.

2、–multi-dex 参数配置示例

build.gradle#android#dexOptions#additionalParameters 配置多 dex 示例 :

代码语言:javascript复制
    dexOptions {
        additionalParameters '--multi-dex'
    }

二、BuildType#multiDexEnabled 属性配置多 dex


BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html

1、BuildType#multiDexEnabled 属性

在 BuildType 中 , 配置 BuildType#multiDexEnabled 属性 , 也可以设置 多 dex 文件 ;

BuildType#multiDexEnabled 属性原型 :

代码语言:javascript复制
Boolean multiDexEnabled
Whether Multi-Dex is enabled for this variant.

2、配置示例

build.gradle#android#buildTypes#multiDexEnabled 配置示例 :

代码语言:javascript复制
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.example.classloader_demo"
    }


    buildTypes {
        debug {
            multiDexEnabled true
        }
    }
}

0 人点赞