最近在使用Http时需要实现文件上传,虽然可以使用HttpURLConnection 实现原生post上传,不过这个好像效率很低,然后就选择网上比较多的HttpClient 通过HttpPost的方式上传文件,使用这种方式的时候需要用到apache的一个jar包,httpmime-xxx.jar 这个包还依赖于httpcore-xxx.jar,在正常的导入两个jar包后,满心欢喜的准备变异,可是一个蛋疼的错误蹦出来了:
Error:duplicate files during packaging of APK D:\Develop\Android\workspace\androidstudio\MLTimeLine\app\build\outputs\apk\app-debug-unaligned.apk Pathinarchive:META-INF/NOTICE Origin1:D:\Develop\Android\workspace\androidstudio\MLTimeLine\app\libs\httpcore-4.3.jar Origin2:D:\Develop\Android\workspace\androidstudio\MLTimeLine\app\libs\httpmime-4.3.1.jarYoucan ignore those files inyour build.gradle:android {packagingOptions {exclude 'META-INF/DEPENDENCIES'exclude 'META-INF/NOTICE'exclude 'META-INF/LICENSE'}}Error:Executionfailed fortask ':app:packageDebug'.>Duplicatefiles copied inAPK META-INF/NOTICE File1:D:\Develop\Android\workspace\androidstudio\MLTimeLine\app\libs\httpcore-4.3.jar File2:D:\Develop\Android\workspace\androidstudio\MLTimeLine\app\libs\httpcore-4.3.jar
看字面意思就是说jar加载重复了,然后就是需要在项目的便衣文件中加入一些东西,既然能理解,就按照它提示的来嘛,
打开项目的build.gradle文件,在android标签下加入提示的部分,
然后同步gradle:在修改了gradle编译文件后 Androidstudio右上角会有提示同步gradle的按钮,可以直接点击同步gradle配置,如果没有可以选择菜单栏里的:Tools – Android – Sync Project with Gradle Files 进行同步
同步完成,继续编译,duang~~
还是那个错误,不过这次提示加入的内容不同,继续在packagingOptions 下边添加,继续同步编译,duang~~
继续~~ duang duang duang ~~
ok duang了三次之后算是没问题了,在编译配置文件中加入的就是这几行代码
// 解决重复加载第三方那个jar包问题packagingOptions {exclude 'META-INF/DEPENDENCIES'exclude 'META-INF/NOTICE'exclude 'META-INF/LICENSE'}
感觉这个也是根据添加的jar包不同而有所不同的;不过只要跟着提示应该都可以解决的!