指点成金-最美分享吧

登录

如何在library中使用productFlavors

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了如何在library中使用productFlavors相关的知识,希望对你有一定的参考价值。

前言:

前面笔者介绍过,如果用一套代码,定制化多个app。那就是使用productFlavors。

一般情况下都没有问题,但是在library的gradle里面,直接使用productFlavors是不允许的。所以下面我们就来介绍一下如何在library中使用productFlavors。

1.基础

前面介绍过如何使用productFlavors,不了解的朋友需要先看看这篇文章

活用productFlavors,批量定制化

http://blog.csdn.net/yulyu/article/details/59111697

2.场景介绍

首先我们引用了一个picmodule,然后picmodule里面有一个正常的产品,两个定制化的产品

main是普通产品,red和blue是定制化产品(这里只是里面使用的图片不一样)

3.解决方法

于是我们就在picmodule的gradle配置productFlavors,但是picmodule是属于一个library,所以这样做是不允许的,项目将找不到引入的picmodule

那么如何解决呢?

首先我们需要在picmodule的gradle里面加入一句话(记住不要漏了)

publishNonDefault true

接着我们在application下的build.gradle里面加入一些配置

在Android模块内加入

productFlavors    common    red    blue

在gradle最外层加入

configurations     commonCompile    redCompile    blueCompile

接着修改一下引入picmodule的方法

平时引入module是这样的

 compile project(":picmodule")

我们改成下面这样

commonCompile project(path: ":picmodule", configuration: "commonRelease")redCompile project(path: ":picmodule", configuration: "redRelease")blueCompile project(path: ":picmodule", configuration: "blueRelease")

这里library我是用的Release包,如果要用debug版的library也可以改成下面这样

commonCompile project(path: ":picmodule", configuration: "commonDebug")redCompile project(path: ":picmodule", configuration: "redDebug")blueCompile project(path: ":picmodule", configuration: "blueDebug")

然后同步一下就可以了

这个时候如果找不到R文件,那么clean一下或者重启一下as都可以

4.Demo地址

Demo地址

http://download.csdn.net/detail/yulyu/9820032

热门文章

  • 嘿,程序猿,你该学点经济学了!
  • 面试时,你被问到过 TCP/IP 协议吗?
  • Glide-源码详解
  • 渐进式加载-基础讲解
  • 活用productFlavors
  • onTouch事件传递
  • 那些年我们解决滑动冲突时遇过的坑
  • 进程间通信–AIDL
  • 序列化–Serializable与Parcelable
  • 如何解决内存溢出以及内存泄漏
  • Okhttputils终极封装
  • FaceBook推出的调试神器
  • Android代码优化工具
  • Glide-入门教程
  • Glide-图片预处理(圆角,高斯模糊等)
  • Glide-图片的压缩
  • Glide-内存缓存与磁盘缓存
  • Glide-自定义缓存

以上是关于如何在library中使用productFlavors的主要内容,如果未能解决你的问题,请参考以下文章