1.每次导入别人的工程项目,我都战战兢兢,因为我不知道又会出现什么问题。导入别人项目引起的问题把我折磨的死去活来,可是我会因此怕了吗?所有的问题都事出有因,遇到问题,就是深入理解的机遇,解决它,你就上了一个台阶。就像dota前期打野一样,虽然很伤,但每打死一个,你就会获得一定的经验,为你接下来的升级奠定基础。
2.言归正传,今天导入别人项目是遇到这样的错误。
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.
DuplicateFileException: Duplicate files copied in APK META-INF/RELEASE_NOTES.txt
File1: E:\comProject\jupinProject\WeatherDemo1\app\libs\poi-ooxml-3.7-20101029.jar
File2: E:\comProject\jupinProject\WeatherDemo1\app\libs\poi-3.7-20101029.jar
这里面核心词就一个 :DuplicateFileException 我就简单理解为 :重文件异常
3.解决办法也挺简单。网上搜了一大堆,且看看。都说是在项目的build.gradle里面(不是工程里面的),Android大括号里面加入下面这些配置就好。这些配置是基本的配置,解决重包,但我的问题并没有解决。
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
}
4.本来已经放弃的我,突然发现这些配置好相像。
exclude 'META-INF/license.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/NOTICE'
都是两个一组,而且格式类似,于是,我根据我报的错误进行这样的添加:
先看我的报错:
Duplicate files copied in APK META-INF/RELEASE_NOTES.txt
我的添加:
exclude 'META-INF/RELEASE_NOTES.txt'
exclude 'META-INF/RELEASE_NOTES'
就是把apk后面的复制过来,弄成两份,右上角的Sync Now走一下,build一下,竟然成了。
5.总结
以后,遇到类似的重包问题,只要是: DuplicateFileException,就直接在 packagingOptions {}里面加入这样的配置就好。
网友评论