在 gradle:3.0.0 上找到多个文件,其独立于操作系统的路径为“META-INF/ASL2.0”
Posted
技术标签:
【中文标题】在 gradle:3.0.0 上找到多个文件,其独立于操作系统的路径为“META-INF/ASL2.0”【英文标题】:On gradle:3.0.0 More than one file was found with OS independent path 'META-INF/ASL2.0' 【发布时间】:2018-04-07 22:55:47 【问题描述】:我已将我的 android 工作室更新到 3.0
然后他要求升级到'com.android.tools.build:gradle:3.0.0'
一切都很顺利,直到我决定运行我的项目并且它给了我这个错误
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
发现多个文件具有独立于操作系统的路径“META-INF/ASL2.0”
我的应用 gradle
android
compileSdkVersion 26
buildToolsVersion "26.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig
applicationId "com.test.demo"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
'
我的图书馆毕业典礼
android
compileSdkVersion 26
buildToolsVersion "26.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig
compileOptions
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
packagingOptions
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
【问题讨论】:
More than one file was found with OS independent path 'META-INF/LICENSE'的可能重复 【参考方案1】:您应该将build.gradle
添加到应用程序packagingOptions
:
packagingOptions
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
【讨论】:
我会试试的 已修复,在“无法合并 dex”后出现另一个错误,我进入了 multidex 并且成功了! 嘿!我做了 multiDexEnabled true 并编译了 'com.android.support:multidex:1.0.2' 但仍然无法正常工作..有什么想法吗? :)【参考方案2】:在尝试其他方法之前先试试这个。
第一:
检查您是否在 build.gradle->dependencies
中设置了此项implementation fileTree(include: ['*.jar'], dir: 'libs')
如果你在 build.gradle 文件中设置了这个,那么如果你尝试从你的 libs 目录导入库,也要检查这个:
implementation files('libs/...')
如果您的 build.gradle 文件中也有此内容,请将其删除或注释掉,因为您正在尝试再次重新导入该库,结果就是该错误。
【讨论】:
添加这个“实现文件树(包括:['*.jar'],目录:'libs')”对我有用,谢谢!【参考方案3】:只需添加以下代码即可解决问题
packagingOptions
pickFirst 'META-INF/*'
【讨论】:
【参考方案4】:您可以添加到 packagingOptions 块中,在您的应用程序 build.gradle 的 android 块中,
android
compileSdkVersion 29
defaultConfig
applicationId "abcd.efgh.com.x"
minSdkVersion 22
targetSdkVersion 29
versionCode 29
versionName "1.9.2"
packagingOptions
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
【讨论】:
以上是关于在 gradle:3.0.0 上找到多个文件,其独立于操作系统的路径为“META-INF/ASL2.0”的主要内容,如果未能解决你的问题,请参考以下文章
Could not find com.android.tools.build:gradle:3.0.0-alpha3
找不到 com.android.tools.build:gradle:3.0.0 [重复]
使用android gradle插件3.0.0比gradle插件2.3.3慢