解决More than one file was found with OS independent path ‘lib/armeabi-v7a/libRSSupport.so‘

接入广告小说短视频平台,编译失败老是提示

More than one file was found with OS independent path 'lib/armeabi-v7a/libRSSupport.so'

....

解决办法简单粗暴:

1、在APP的build.gradle中 android节点下面添加对应的 so库依赖

android {
    packagingOptions {
        pickFirst 'lib/armeabi-v7a/libRSSupport.so'
        pickFirst 'lib/arm64-v8a/librsjni.so'
        pickFirst 'lib/arm64-v8a/libRSSupport.so'
        pickFirst 'lib/x86_64/librsjni_androidx.so'
        pickFirst 'lib/x86/librsjni_androidx.so'
    }
}

项目依赖多了,编译很耗时间,可能等编译还会报错,建议用第二种方法。(因为你不知道还缺什么so的引用)

2、还是在APP的build.gradle中的android{}节点下添加

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

对于4.0似乎就不会有这个异常,希望项目做完能有时间多去了解一下IDE更新了些什么功能,及时跟上步伐。

或者有更好的办法欢迎留言!

当前Android Studio 3.6.1,书到用时方恨少,纸上得来终觉浅!共勉。

### 如何在 Android Studio 创建新项目时添加或处理缺失的 libs 文件夹 当在 Android Studio 中创建新的项目时,默认情况下可能不会自动生成 `libs` 文件夹。然而,这个文件夹对于管理本地库文件(如 `.jar`, `.so` 或者其他依赖项)非常重要。 #### 方法一:手动创建 `libs` 文件夹 可以直接在项目的 app 模块根目录下通过右键菜单选择 New -> Directory 来创建名为 `libs` 的文件夹[^1]。一旦创建好此文件夹,则可以将所需的第三方库文件放入其中,并确保这些资源被正确配置以便于编译过程能够识别它们。 #### 方法二:利用 Gradle 配置自动引入外部库 如果希望更方便地管理和引用外部库而不必每次都手动放置文件到特定位置,可以在模块级别的 build.gradle 文件内指定依赖关系: ```groovy dependencies { implementation files('libs/your-library.jar') } ``` 这段代码告诉构建工具去查找位于 `libs` 下面的具体 jar 库并将其加入到工程当中。当然,如果有多个这样的静态库或者是动态链接库(.so),同样可以通过上述方式来声明[^2]。 #### 处理重复 SO 文件冲突的情况 有时可能会遇到不同版本或是来自不同源码路径下的相同名称共享对象(so)文件共存的问题,比如提示 "More than one file was found with OS independent path". 对于此类情况,应该调整 `build.gradle` 中的设置如下所示以避免冲突: ```groovy android { ... packagingOptions { pickFirst 'lib/arm64-v8a/xxxxx.so' pickFirst 'lib/armeabi-v7a/xxxxxx.so' } } ``` 这里定义了一个策略用于挑选优先级最高的 so 文件实例参与最终 APK 构建过程中[^3]。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值