在新版Android Studio运行旧TensorFlow Lite项目时mergeExtDexDebug任务失败
:app:mergeExtDexDebug失败问题 问题详情
任务':app:mergeExtDexDebug'执行失败。具体错误详情:无法解析配置':app:debugRuntimeClasspath'的所有文件;转换工件'tensorflow-lite-api.aar (org.tensorflow:tensorflow-lite-api:2.10.0)'以匹配属性{artifactType=android-dex, dexing-is-debuggable=true, dexing-min-sdk=15}失败;DexingTransform执行失败:C:\Users\bhanu.mahto.gradle\caches\transforms-2\files-2.1\909aa36c283e1c03f5255c732f1ca9e4\jars\classes.jar;dexing时出错。
解决方案
更新TensorFlow Lite依赖版本
旧版本tensorflow-lite-api:2.10.0与新版Android Studio的Dex工具兼容性较差,建议升级到适配新版AGP的稳定版本。在app/build.gradle中修改依赖:implementation 'org.tensorflow:tensorflow-lite-api:2.15.0' implementation 'org.tensorflow:tensorflow-lite:2.15.0' // 保持核心依赖版本一致同步项目后重新构建。
清理Gradle缓存并重建
缓存文件损坏可能导致dex转换失败,执行以下步骤:- 点击Android Studio顶部菜单栏
File > Invalidate Caches...,勾选Invalidate and Restart重启IDE。 - 手动删除本地Gradle缓存目录
C:\Users\bhanu.mahto\.gradle\caches,再依次执行Build > Clean Project和Build > Rebuild Project。
- 点击Android Studio顶部菜单栏
调整Dex编译配置
在app/build.gradle的android块中添加或修改配置,适配低版本SDK并优化编译环境:android { defaultConfig { minSdkVersion 16 // 新版Dex工具对minSdk 15支持有限,建议升级至16及以上 multiDexEnabled true // 开启多Dex支持,避免方法数超限 } dexOptions { javaMaxHeapSize "4g" // 增大Dex编译堆内存,避免内存不足导致失败 } }同步配置后重新构建项目。
匹配AGP与Gradle版本
新版Android Studio默认使用高版本AGP,旧项目的AGP版本可能与TensorFlow Lite 2.10.0不兼容。在项目根目录build.gradle中升级AGP到兼容版本:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 适配TensorFlow Lite 2.10+的稳定AGP版本 }注意AGP版本需与Gradle版本匹配,可参考Android Studio提示的对应关系调整。
内容的提问来源于stack exchange,提问作者Bhanu Mahto

