背景:最近準備在使用react-native開發的app中接入友盟,來進行用戶行爲統計,分享,受權登陸等操做。html
在使用的過程當中,遇到了一些錯誤信息,在此記錄一下。react
在修改android目錄下的build.gradle等信息後,運行react-native run-android報錯,錯誤信息以下:android
com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/xxx/.gradle/caches/modules-2/files-2.1/com.umeng.analytics/analytics/6.1.4/c1d30c2bbdce435b775cadca57df2098044a0f5e/analytics-6.1.4.jar
爲何會提示這個錯誤了,後來通過搜索查找,發現了下面介紹:http://www.cnblogs.com/evilKing/p/4778935.htmlreact-native
註釋android/app/build.gradle目錄下dependencies中的implementation 'com.umeng.analytics:analytics:latest.integration',從新執行編譯腳本,啓動正常,是什麼緣由致使的錯誤呢?api
貼出咱們引入的資源:app
dependencies { // 表明src目錄同級libs目錄所有解析 implementation fileTree(include: ['*.jar'], dir: 'libs') // implementation files('libs/umeng-analytics-8.0.0.jar') // implementation files('libs/umeng-common-2.0.0.jar') // implementation 'com.umeng.analytics:analytics:latest.integration' // implementation 'com.umeng.analytics:analytics:6.1.4' implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" implementation 'com.facebook.react:react-native:+' }
在使用友盟時,咱們會下載jar包存放在src同級的libs目錄下面,libs目錄包含分享,受權登陸等一些三方SDK文件,目錄結構gradle
再看看dependencies下的implementation fileTree(include: ['*.jar'], dir: 'libs'),*時匹配libs目錄下全部的已jar結尾的文件,等同於用過implementation引入資源,表明解析libs目錄下的全部資源到文件中,所以在下面再次引入implementation 'com.umeng.analytics:analytics:latest.integration'時,會致使資源重複加載,致使打包失敗。ui