Android AudioConverter转AAC为WAV时Gradle初始化报错求助
解决Android AudioConverter转换时libARM_ARCH.so重复冲突问题
你遇到的这个错误是因为项目里多个依赖库都包含了同名的lib/armeabi-v7a/libARM_ARCH.so文件,Gradle在合并JNI库的时候不知道该保留哪一个,所以抛出了冲突异常。下面是几种快速解决的方案:
方案一:让Gradle优先保留第一个找到的so文件
在你的app模块的build.gradle文件的android代码块中,添加packagingOptions配置,指定遇到重复的so文件时只保留第一个:
android { compileSdkVersion 25 buildToolsVersion '26.0.2' defaultConfig { // 你的默认配置... } // 添加这段配置 packagingOptions { pickFirst 'lib/armeabi-v7a/libARM_ARCH.so' } }
这个方法简单直接,大部分情况下都能解决问题。如果之后运行时没有出现功能异常,就说明保留的这个so版本是兼容的。
方案二:排查并排除重复的依赖
如果用方案一之后出现了运行时错误(比如音频转换功能失效),那说明不同依赖里的so文件功能有差异,这时候需要找到重复的来源并排除其中一个。
先查看项目的依赖树,找到包含重复so的库:
在Android Studio的Terminal中执行命令:# macOS/Linux ./gradlew app:dependencies # Windows gradlew app:dependencies搜索输出内容里的
libARM_ARCH.so,找到重复引入的依赖库。在
dependencies块中排除冲突的依赖,比如假设是某个第三方库带来的重复:dependencies { // 假设这个库和AudioConverter重复了so文件 implementation('com.some.thirdparty:library:1.0.0') { exclude group: 'com.some.group', module: 'conflicting-module' } // 你的AudioConverter依赖 implementation 'com.github.adrielcafe:AndroidAudioConverter:0.0.8' }
修改完配置后,点击Android Studio右上角的"Sync Now"同步项目,然后重新构建运行应该就能解决这个冲突问题了。
内容的提问来源于stack exchange,提问作者Angelo
相关产品推荐
相关产品推荐

