Grade 编译 Android 解决 Error:more than one library with package name
Error: more than one library with package name 'com.app.XX' You can temporarily disable this error with android.enforceUniquePackageName=false However, this is temporary and will be enforced in 1.0
最近在将老的项目构建成 gradle 编译,大体目录格式是:
一个主项目,依赖四个子项目,中间转换的时候,出现不少问题,最终一一解决了。
主项目
子项目
依赖
mainPro
–>ext1
–>ext2
–>ext2
–>ext3
–> ett2
–>ext4
在项目编译的时候,总是出现
more than one library with package name 'com.app.XX'
在网上找了一些方案,但是还是不行,最后 分析了下:more than one library with package name ‘com.app.XX’, 从含义中能明白 应该是 library 里面有两个 依赖的 包名 是一样的,最后细细排查一下,果然是 有两个包名是一样的 ext2 和 ext4 的包名是:
com.app.XX
原来是这里的原因。 重新发布 依赖工程的 ext2 的包名为:
com.app.aXX
就OK 了,但是由于 ext 3依赖 ext2, ext1也依赖 ext 2 , 所以以意味着 也要重新发布 ext1 和 ext3 。
但是这样显然很麻烦,其实依赖的时候,可以写成
compile 'com.xxx.sdk:xxx-lib:1.0.+'
后面修改为 1.0.+,当有最新的话,会优先选用最新的。
这次发布后,如果 ext2 还是有问题,或是修改bug 后, ext1 和 ext3 会自动获取最新的,就不需要重新发布了。