日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 )

發布時間:2025/6/17 Android 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、ProductFlavor#buildConfigField 方法
  • 二、單獨執行 Gradle 編譯 BuildConfig 的任務

Android Plugin DSL Reference 參考文檔 :

  • 文檔主頁 : https://google.github.io/android-gradle-dsl/2.3/

  • 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

  • NDK 參考文檔 : Add C and C++ Code to Your Project.





一、ProductFlavor#buildConfigField 方法



ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文檔 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html


ProductFlavor 中的方法 , 大部分都是為 ProductFlavor 的屬性進行賦值 ;

ProductFlavor#buildConfigField 方法 , 用于在編譯時指定在 BuildConfig 類中 , 生成的字段 ;

向生成的 BuildConfig 類添加一個新字段。 該字段生成為:<type><name>=<value> 這意味著每一個都必須有有效的Java內容。如果類型是字符串,則該值應包含引號。

這里調用

void buildConfigField(String type, String name, String value)

方法 , 向 生成的 BuildConfig 類中添加新的字段 , 生成的字段樣式為

<type> <name> = <value>;

這里需要注意 , 上述 333 個字符串原封不動的替換 ,

如果是字符串 , 需要使用如下樣式聲明 , 字符串外部的雙引號 , 也需要手動使用轉移字符串生成 ;

buildConfigField("String", "market", "\"${market}\"")

在 build.gradle 中聲明 BuildConfig 字段代碼 :

android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "com.example.classloader_demo"minSdkVersion 18targetSdkVersion 30buildConfigField("boolean", "isGooglePlay", "true")buildConfigField("String", "market", '"GooglePlay"')} }

編譯完成后生成的 BuildConfig 類 :

package com.example.classloader_demo;public final class BuildConfig {public static final boolean DEBUG = Boolean.parseBoolean("true");public static final String APPLICATION_ID = "com.example.classloader_demo";public static final String BUILD_TYPE = "debug";public static final int VERSION_CODE = 1;public static final String VERSION_NAME = "1.0";// Field from default config.public static final boolean isGooglePlay = true;// Field from default config.public static final String market = "GooglePlay"; }

實際用法 : 參考 【Android Gradle 插件】gradle.properties 中配置編譯參數并在 Java 代碼 BuildConfig 中調用該參數 博客 ;





二、單獨執行 Gradle 編譯 BuildConfig 的任務



Android Gradle 插件中 , 提供了單獨編譯 BuildConfig 類的 Gradle 任務 , 即 generateDebugBuildConfig 任務 ;

在 Android Studio 命令行中 , 可以執行

gradlew generateDebugBuildConfig

命令 , 單獨編譯生成 BuildConfig 類 ;

執行結果 :

Y:\002_WorkSpace\001_AS\SVG>gradlew generateDebugBuildConfigBUILD SUCCESSFUL in 4s 3 actionable tasks: 2 executed, 1 up-to-date Y:\002_WorkSpace\001_AS\SVG>

總結

以上是生活随笔為你收集整理的【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。