您的位置:首页 > 理论基础 > 计算机网络

解决DefaultHttpClient已过时、第三方类库的jar包内容重复两个问题

2017-11-09 00:00 344 查看
摘要: 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/LICENSE
File1: E:\MyGameRemake\app\libs\httpcore-4.4.6.jar
..



两个错误:分别是DefaultHttpClient已过时、和第三方类库的jar包内容重复

解决方案1:

由于HttpClient的jar包版本升级,从httpclient 4.2.5版本之后的jar包就不再支持DefaultHttpClient了,所以可以采用如下方法:

方法1(如果你不怕麻烦,可以采用如下方法):

导入httpclient 4.2.5

导入httpcore 4.2.4

方法2:如下图所示,将原来画有横线的那行代码换成箭头所指的代码即可解决问题



【注】:即使这个错误不解决,也不影响生成APK,不信的话查看app-->build-->outputs-->apk

解决方案2:

从错误提示中可以看出jar包中META-INF和LICENSE目录下有重复内容加载,打开对应的jar包



可以看到两个jar包都有LICENSE,里面内容也是完全一样,其他的文件似乎也有重复的可能,只是没有报错信息而已

打开app\build.gradle文件

修改配置如下:

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
//插入下方代码
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/notice.txt'
}
}

最后Rebuild Project
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐