一捂龄、在Android Studio中打包時(shí)報(bào)錯(cuò)如下:
打包時(shí)報(bào)多個(gè)屬性文件錯(cuò)誤
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformResourcesWithMergeJavaResForRelease'.
> More than one file was found with OS independent path 'META-INF/rxjava.properties'
大意是多個(gè)與操作系統(tǒng)無關(guān)的路徑“META-INF/rxjava.properties”释涛。rxjava.properties是rxjava依賴庫的屬性配置文件。
注意:這個(gè)問題是有時(shí)候引用的三方庫會(huì)帶有一些配置文件xxxx.properties,或者license信息導(dǎo)致的倦沧。
二唇撬、解決方案:
在主項(xiàng)目的build.gradle文件中加入packagingOptions 配置:
packagingOptions {
????????exclude 'META-INF/rxjava.properties'
}
packagingOptions 是打包時(shí)的一些配置,使用exclude 在打包時(shí)移除項(xiàng)目中的相關(guān)文件展融,不打入apk文件中窖认。
針對(duì)引用的三方庫會(huì)帶有一些配置文件xxxx.properties,或者license信息,當(dāng)我們打包的時(shí)候想去掉這些信息就可以使用上面的packagingOptions 配置方式告希。
(3)通用解決方案:
下面粘貼我項(xiàng)目中使用的全部packagingOptions 配置
packagingOptions {
? ?????exclude 'META-INF/ASL2.0'
? ? ????exclude 'META-INF/DEPENDENCIES.txt'
????????exclude 'META-INF/LICENSE.txt'
????????exclude 'META-INF/NOTICE.txt'
????????exclude 'META-INF/NOTICE'
????????exclude 'META-INF/LICENSE'
????????exclude 'META-INF/DEPENDENCIES'
????????exclude 'META-INF/notice.txt'
????????exclude 'META-INF/license.txt'
????????exclude 'META-INF/dependencies.txt'
????????exclude 'META-INF/LGPL2.1'
????????exclude 'META-INF/services/javax.annotation.processing.Processor'
????????exclude 'META-INF/rxjava.properties'
}