You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端PyTorch与OpenCV依赖冲突问题求助

解决libc++_shared.so依赖冲突问题

你遇到的问题是OpenCV 4.9.0和PyTorch Android 2.1.0两个依赖库都打包了libc++_shared.so动态库,导致打包时出现重复文件冲突。以下是几种可行的解决方法:

方法一:优先保留第一个找到的文件

在你的build.gradle.kts的android代码块中添加packagingOptions配置,让Gradle遇到重复路径的文件时只保留第一个:

android {
    // 已有的android配置(compileSdk、defaultConfig等)...
    
    packagingOptions {
        pickFirst("lib/*/libc++_shared.so")
    }
}

这个配置会匹配所有架构目录下的libc++_shared.so,自动选择第一个遇到的版本打包,避免冲突。

方法二:主动排除其中一个库的文件

如果你想明确指定排除某一个库的libc++_shared.so,可以用exclude规则。比如排除OpenCV的该文件:

android {
    // 已有的android配置...
    
    packagingOptions {
        // 针对arm64-v8a架构排除
        exclude("lib/arm64-v8a/libc++_shared.so")
        // 如果你的应用需要支持其他架构,补充对应的路径:
        // exclude("lib/armeabi-v7a/libc++_shared.so")
        // exclude("lib/x86/libc++_shared.so")
        // exclude("lib/x86_64/libc++_shared.so")
    }
}

如果排除OpenCV的文件后出现运行时错误,就换成排除PyTorch的对应文件试试——不同库可能依赖该动态库的特定版本,需要根据实际运行情况调整。

内容的提问来源于stack exchange,提问作者user19013678

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:32:21