背景:最近準備在使用react-native開發的app中接入友盟,來進行用戶行為統計,分享,授權登錄等操作。 在使用的過程中,遇到了一些錯誤信息,在此記錄一下。 在修改android目錄下的build.gradle等信息後,運行react-native run-android報錯,錯誤信息如下: ...
背景:最近準備在使用react-native開發的app中接入友盟,來進行用戶行為統計,分享,授權登錄等操作。
在使用的過程中,遇到了一些錯誤信息,在此記錄一下。
在修改android目錄下的build.gradle等信息後,運行react-native run-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.html
註釋android/app/build.gradle目錄下dependencies中的implementation 'com.umeng.analytics:analytics:latest.integration',重新執行編譯腳本,啟動正常,是什麼原因導致的錯誤呢?
貼出我們引入的資源:
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文件,目錄結構
再看看dependencies下的implementation fileTree(include: ['*.jar'], dir: 'libs'),*時匹配libs目錄下所有的已jar結尾的文件,等同於用過implementation引入資源,代表解析libs目錄下的所有資源到文件中,因此在下麵再次引入implementation 'com.umeng.analytics:analytics:latest.integration'時,會導致資源重覆載入,導致打包失敗。