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

Android集成soundtouch库报错:找不到libsoundtouch.so

解决Android集成SoundTouch库时libsoundtouch.so找不到的问题

核心问题

你的.so文件未被Gradle正确打包进最终APK,导致运行时无法加载。以下是针对性解决步骤:


步骤1:统一.so文件存放目录

Android默认优先识别src/main/jniLibs目录下的Native库,建议你:

  • 将soundtouch/libs目录下所有架构的libsoundtouch.so移动到soundtouch/src/main/jniLibs对应的架构目录中
  • 删除soundtouch/libs目录,避免Gradle识别混淆

步骤2:配置SoundTouch模块的build.gradle

在soundtouch模块的build.gradle的android块中添加以下配置,确保Gradle能正确识别Native库:

android {
    defaultConfig {
        // 指定需要支持的CPU架构,和你的.so文件架构对应
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }

    // 配置jniLibs目录(如果默认目录被修改时需要)
    sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
        }
    }

    // 配置ndk-build脚本路径(如果你用ndk-build编译.so)
    externalNativeBuild {
        ndkBuild {
            path file('jni/Android.mk') // 指向你的Android.mk文件路径
        }
    }
}

步骤3:检查App模块的build.gradle配置

确保app模块的defaultConfig中没有排除你需要的架构:

android {
    defaultConfig {
        ndk {
            // 不要设置成不包含armeabi-v7a/arm64-v8a的配置
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

步骤4:清理并重建项目

执行以下命令彻底清理缓存并重新构建:

./gradlew clean
./gradlew assembleDebug

构建完成后,解压APK检查lib目录下是否包含对应架构的libsoundtouch.so文件。

步骤5:确认加载库的代码正确

确保你的SoundTouch.java中加载库的代码是:

static {
    System.loadLibrary("soundtouch"); // 不要加"lib"前缀或".so"后缀
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:38:21