解决.DuplicateFileException

作者: 若兮生生 | 来源:发表于2016-11-20 12:05 被阅读121次

    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 {}里面加入这样的配置就好。

    相关文章

      网友评论

        本文标题:解决.DuplicateFileException

        本文链接:https://www.haomeiwen.com/subject/dvtypttx.html