首先是buildTypes: Android会默认给每个模块生成debug 和release buildType,所以就算每个模块不配置buildTypes 也至少有一个debug和release包;每个模块打debug包时候,对应依赖的就是子模块的debug包,release包也是对应依赖子模块release包,如果子模块定义了新的buildType,比如pre,主模块想使用,那就要定义对应名称的buildType...
4、配置Android.mk文件 如图: 如图中,其中红线包裹起来的是要引用的库的声明,30行是这个apk对有哪些库有引用,31行是你这个apk的名字要和之前的msm8909.mk文件你添加的那句代码对应起来,36行表示用的是第三方签名,37行会把生成的apk文件放到system/pri-app下面,38行是进能产生odex就是说会在out目录下生成.apk...
productFlavors{huawei{dimension"channel"missingDimensionStrategy"type","pad"}xiaomi{dimension"channel"}oppo{dimension"channel"}vivo{dimension"channel"}huaweiPay{dimension"pay_type"//这个必须在相同维度的配置//如果mylibrary2 中有和此风味相同的类,是可以覆盖的,不会有冲突错误matchingFallbacks=['pay1']}....
一、关于配置产品风味 Android studio 升级到3.0之后,gradle增加了多维度管理配置,便于同一个项目中创建应用的不同版本,分别管理依赖项并签署配置。创建产品风味与创建构建类型类似:只需将它们添加到productFlavors {}代码块并配置您想要的设置。产品风味支持与defaultConfig相同的属性,这是因为defaultConfig实际上属于ProductF...
以下是实现Android组件化中使用productFlavors的gradle配置的步骤: 2. 操作步骤及代码 步骤1:在项目根目录的build.gradle文件中添加组件化相关配置 在项目根目录的build.gradle文件中添加如下代码: // 添加组件化配置 subprojects { apply plugin: 'com.android.library' ...
也就是说,defaultConfig中可以配置的属性,比如applicationId,minSdkVersion等,都可以在productFlavors中配置,因为defaultConfig就是一个productFlavor实例. 在本例中,解释上面两个属性,buildConfigField可以理解为定义一个常量,传入的值分别代表type,name,value; 通过BuildConfig.PROJECT_SIGN 可以拿到相应的值,比如我们熟悉的Bui...
productFlavors{ official{ resValue "string","app_name","ABC" //动态配置 strings.xml中的 app_name 字段值,这样定义后,需要删除 strings.xml 中对 app_name 的声明定义,二者不能同时存在,可以放心删除 strings.xml 中的声明,不会报找不到R资源的错误(gradle 果然神秘) ...
productFlavors { // 不设置,继承defaultConfig中的配置 a { manifestPlaceholders=[scheme:"a"] } b { applicationId "com.example.android.myapplication.b" manifestPlaceholders=[scheme:"b"] } }<activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><cate...
}productFlavors{wandoujia{ manifestPlaceholders=[UMENG_CHANNEL_VALUE:"wandoujia"] }yingyongbao{ manifestPlaceholders=[UMENG_CHANNEL_VALUE:"yingyongbao"] }xiaomi{ manifestPlaceholders=[UMENG_CHANNEL_VALUE:"xiaomi"] } } } 直接双击如下图中的assembleRelease,就可以一口气编译所有渠道的release包 ...