背景:最近准备在使用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‘时,会导致资源重复加载,导致打包失败。
原文地址:https://www.cnblogs.com/sk-3/p/10823129.html
时间: 2024-10-04 22:31:10