react native报错处理com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process

发布时间:2019-05-07 06:00:12发布者:Mr.Zhang阅读(344)

背景:最近准备在使用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