Grade 编译 Android 解决 Error:more than one library with package name

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 会自动获取最新的,就不需要重新发布了。

你可能感兴趣的:(Android,gradle)