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

Expo裸工程构建报错:libfbjni.so缺失且无构建规则

解决Expo Bare Workflow构建时libfbjni.so缺失的问题
  • 检查依赖版本兼容性
    确认package.json里expo和expo-av的版本与当前使用的Expo SDK完全匹配,版本不兼容是native依赖缺失的常见原因。执行npm install --force或yarn install --force强制同步依赖,避免缓存干扰。

  • 重新生成Native配置
    执行npx expo prebuild --clean,这个命令会彻底重建Android和iOS的native目录结构,比单独的./gradlew clean更能解决配置损坏问题。

  • 调整Android ABI过滤规则
    打开android/app/build.gradle,在release构建类型中添加正确的ABI过滤,确保覆盖你真机的架构(比如arm64-v8a是多数现代安卓机的架构):

    android {
      buildTypes {
        release {
          ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
          }
        }
      }
    }
    
  • 确保fbjni依赖仓库和版本正确
    打开android/build.gradle,在allprojects.repositories中添加Facebook的maven仓库,确保能拉取到fbjni依赖:

    allprojects {
      repositories {
        // 保留现有仓库,新增以下两行
        maven { url 'https://maven.facebook.com' }
        maven { url 'https://maven.google.com' }
      }
    }
    

    同时在android/app/build.gradle的dependencies中手动指定fbjni版本(版本号需匹配你的Expo SDK,比如SDK 49对应0.2.2):

    dependencies {
      // 其他依赖不变,新增该行
      implementation 'com.facebook.fbjni:fbjni:0.2.2'
    }
    
  • 清理深层缓存
    除了./gradlew clean,还需要:

    • 执行npm cache clean --force或yarn cache clean清理包管理器缓存
    • 删除android/.gradle目录,然后重新执行./gradlew assembleRelease构建
  • 检查EAS构建配置
    打开eas.json,确认android构建配置中的ndk参数与本地build.gradle一致,避免远程构建时使用了错误的ABI过滤规则:

    {
      "build": {
        "production": {
          "android": {
            "buildType": "release",
            "ndk": {
              "abiFilters": ["armeabi-v7a", "arm64-v8a", "x86_64"]
            }
          }
        }
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:35:34