AndroidStudio的transformDexArchiveWithExternalLibsDexMergerForDebug报错解决方案
错误排查记录。
今天在gradle更新了一个引入包的版本号,然后引发了下面的血案。
报错信息:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
根据报错信息的提示,我们可以判断出是应该是引入了两个冲突的同样的内容,即这里的TensorFlowInferenceInterface,我们搜索这里这个类,看看是哪里在用。
搜索后,我们发现有两个地方在用,一个是org.tensorflow.** 另一个是 com.taobao.**
一般情况下,我们去gradle里找到然后排除其中一个即可,但是如果找不到的话,我们可以通过gradle的命令看到包的依赖关系。
下载 gradle(如果没有的话,去这里:https://gradle.org/next-steps/?version=4.10.2&format=bin)
执行
gradle app:dependencies
需要在工程的根目录下:
可以在结果中找到:
可以看到com.taobao.android.alinn**这个是因为我引入了**.alinnkit 这个包导致的。也就是我更新版本后的包,所以我这里将
'com.taobao.android', module:'alinntfsupport' 排除掉,写法如下:
dependencies { compile('com.taobao.android:alinnkit:2.0.0.24-android-SNAPSHOT'){ exclude group:'com.taobao.android', module:'alinntfsupport' } compile('org.tensorflow:tensorflow-android:1.6.0@aar') }
写完后,构建,通过~