AndroidStudio Duplicate files copied in APK錯(cuò)誤解決方案

在AndroidStudio使用中砸紊,很多人會(huì)遇到Duplicate files copied in APK 這種錯(cuò)誤,導(dǎo)致程序不能編譯或者不能打包。出現(xiàn)這種原因就是在編譯或者打包階段出現(xiàn)文件重復(fù)的問題格郁,其實(shí)解決這些問題很簡單,我們只需要根據(jù)錯(cuò)誤提示增加在gradle文件配置packagingOptions配置独悴。
在之前eclipse項(xiàng)目時(shí)使用apache-mime4j-0.6.jar和httpmime-4.0.jar例书,后來轉(zhuǎn)到Androidstudio后出現(xiàn)下面的錯(cuò)誤

    
    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/DEPENDENCIES
    File1: E:\Project\MyApp\app\libs\apache-mime4j-0.6.jar
    File2: E:\Project\MyApp\app\libs\httpmime-4.0.jar

看到提示說Duplicate files copied in APK META-INF/DEPENDENCIES,也就是這兩個(gè)jar中都有一個(gè)DEPENDENCIES文件刻炒,導(dǎo)致編譯或者打包合并時(shí)出現(xiàn)錯(cuò)誤决采。既然是文件重復(fù)出的錯(cuò),我們只需要在packagingOptions設(shè)置排除該文件即可坟奥。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    packagingOptions{
        exclude  'META-INF/DEPENDENCIES'
    }
    defaultConfig {
        applicationId "com.myapp.test"
        minSdkVersion 17
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:22.0.0'
    compile files('libs/apache-mime4j-0.6.jar')
    compile files('libs/httpmime-4.0.jar')
}

一般情況還會(huì)出現(xiàn)NOTICE树瞭,LICENSE文件也會(huì)重復(fù)。

        packagingOptions{
        exclude 'META-INF/NOTICE' // will not include NOTICE file
        exclude 'META-INF/LICENSE' // will not include LICENSE file
        exclude  'META-INF/DEPENDENCIES'
    }

多Module jar重復(fù)

當(dāng)我們創(chuàng)建多個(gè)Module并且都使用了某一個(gè)依賴如加入下面依賴

compile 'com.google.code.gson:gson:2.6.2'

當(dāng)我們?cè)贛oudule 中都加入了依賴后就會(huì)出現(xiàn)jar重復(fù)筏勒,導(dǎo)致運(yùn)行失敗移迫,此時(shí)我們可以將其中一個(gè)Moudle的依賴保留上面寫法旺嬉,其余更如下

    provided 'com.google.code.gson:gson:2.6.2'

或者右鍵module,選擇open module setting,選擇要修改的module名管行,切換到dependencies頁面,將要修改的jar的scope設(shè)置為provided模式邪媳。

使用第三方依賴 jar重復(fù)

當(dāng)我們不同Module使用了同一個(gè)依賴時(shí)可以更改scope為provided模式捐顷,但是如果我們使用的的兩個(gè)第三方依賴中包含有相同的jar的,我們就不能更改scope,雨效。如我們項(xiàng)目中使用了下面兩個(gè)依賴

    compile'com.microsoft.projectoxford:vision:0.5.0'
    compile 'com.microsoft.projectoxford:emotion:1.0.0'

此時(shí)運(yùn)行程序會(huì)出現(xiàn)錯(cuò)誤提示

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForArmDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/commons-io/commons-io/pom.xml
    File1: E:\Project\MyApp\app\build\intermediates\exploded-aar\com.microsoft.projectoxford\vision\0.5.0\jars\libs\commons-io-2.4.jar
    File2: E:\Project\MyApp\app\build\intermediates\exploded-aar\com.microsoft.projectoxford\emotion\1.0.0\jars\libs\commons-io-2.4.jar

通過提示我們看出這兩個(gè)依賴中都使用了commons-io-2.4.jar迅涮,為了保證運(yùn)行,我們根據(jù)提示慢慢修改嗎徽龟,在packagingOptions中加入下面配置

        exclude 'META-INF/maven/commons-io/commons-io/pom.xml'

加入后再次運(yùn)行又出現(xiàn)錯(cuò)誤

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForArmDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/commons-io/commons-io/pom.properties
    File1: E:\Project\MyApp\app\build\intermediates\exploded-aar\com.microsoft.projectoxford\vision\0.5.0\jars\libs\commons-io-2.4.jar
    File2: E:\Project\MyApp\app\build\intermediates\exploded-aar\com.microsoft.projectoxford\emotion\1.0.0\jars\libs\commons-io-2.4.jar

根據(jù)提示繼續(xù)在packagingOptions中加入下面配置

exclude 'META-INF/maven/commons-io/commons-io/pom.properties'
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"

    defaultConfig {
        applicationId "com.myapp.test"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 6
        versionName "1.0"
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/maven/commons-io/commons-io/pom.xml'
        exclude 'META-INF/maven/commons-io/commons-io/pom.properties'
    }
    sourceSets {
        main {
            java.srcDirs = ['src/main/java']
            jniLibs.srcDir 'libs'
        }

        debug.setRoot('build-types/debug')
        debug.res.srcDirs = ['src/debug/res']
        release.setRoot('build-types/release')
    }

}


dependencies {
    compile('com.microsoft.projectoxford:vision:0.5.0'){
      exclude group: 'org.apache.commons.io'
    }
    compile 'com.microsoft.projectoxford:emotion:1.0.0'
}



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叮姑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子据悔,更是在濱河造成了極大的恐慌传透,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件极颓,死亡現(xiàn)場離奇詭異朱盐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)菠隆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門兵琳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狂秘,“玉大人,你說我怎么就攤上這事躯肌≌叽海” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵清女,是天一觀的道長碧查。 經(jīng)常有香客問我,道長校仑,這世上最難降的妖魔是什么忠售? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮迄沫,結(jié)果婚禮上稻扬,老公的妹妹穿的比我還像新娘。我一直安慰自己羊瘩,他們只是感情好泰佳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布尘吗。 她就那樣靜靜地躺著,像睡著了一般睬捶。 火紅的嫁衣襯著肌膚如雪黔宛。 梳的紋絲不亂的頭發(fā)上擒贸,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音介劫,去河邊找鬼徽惋。 笑死座韵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的誉碴。 我是一名探鬼主播宦棺,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼翔烁,長吁一口氣:“原來是場噩夢啊……” “哼渺氧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蹬屹,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤侣背,失蹤者是張志新(化名)和其女友劉穎白华,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贩耐,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弧腥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了潮太。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片管搪。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖铡买,靈堂內(nèi)的尸體忽然破棺而出更鲁,到底是詐尸還是另有隱情,我是刑警寧澤奇钞,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布澡为,位于F島的核電站,受9級(jí)特大地震影響景埃,放射性物質(zhì)發(fā)生泄漏媒至。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一谷徙、第九天 我趴在偏房一處隱蔽的房頂上張望拒啰。 院中可真熱鬧,春花似錦完慧、人聲如沸谋旦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛤织。三九已至,卻和暖如春鸿染,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乞巧。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工涨椒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绽媒。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓蚕冬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親是辕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子囤热,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)获三,斷路器旁蔼,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,803評(píng)論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,072評(píng)論 25 707
  • 沒有風(fēng)吹雨打锨苏,哪會(huì)有秋實(shí)的成熟;沒有刺骨的寒風(fēng),哪會(huì)有松柏的堅(jiān)韌棺聊。在逆境中伞租,不要一味地怨天尤人,要多考慮怎樣克服困...
    舊時(shí)浮塵_794c閱讀 209評(píng)論 0 0
  • 我會(huì)等畫上的油彩慢慢被風(fēng)干限佩,原諒我等不了你太久沒到我身邊來
    巴梨_閱讀 266評(píng)論 0 5