You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native 0.78 Android构建失败:缺失com.facebook.react.common.annotations.internal包(LegacyArchitectureLogger导入错误)

React Native 0.78 Android构建失败:缺失com.facebook.react.common.annotations.internal包(LegacyArchitectureLogger导入错误)

我太懂你现在的头疼了——新架构的构建问题总是藏在自动生成代码和依赖适配的细节里,尤其是这种找不到类的导入错误,排查起来特别绕。结合你提供的所有信息,咱们一步步拆解解决:

一、先解决核心兼容性隐患:React版本不匹配

首先要明确:React 19.0.0目前属于非稳定的尝鲜版本,而React Native 0.78.0官方明确推荐的是React 18.2.x稳定版。新架构对React的底层依赖要求极严,非稳定版的React很容易和RN新架构工具链产生版本冲突,这大概率是你碰到LegacyArchitectureLogger导入错误的核心原因之一。

快速修复命令

# 降级React到官方推荐的稳定版(Yarn)
yarn add react@18.2.0
# 或者用npm
npm install react@18.2.0

二、修复Codegen(代码生成)和自动链接问题

你提到的"No modules to process in combine-js-to-schema-cli"提示已经很明确:新架构依赖的Codegen工具没有正确识别或生成所需文件,导致自动生成的ReactNativeApplicationEntryPoint.java用了错误的导入路径。

步骤1:强制重新运行Codegen

先确保新架构环境变量正确设置,再手动触发Codegen重新生成文件:

# Mac/Linux设置新架构启用环境变量
export RCT_NEW_ARCH_ENABLED=1
# Windows用户执行:set RCT_NEW_ARCH_ENABLED=1

# 手动运行RN内置的Codegen命令
npx react-native codegen

步骤2:彻底清理所有缓存(比之前的操作更彻底)

缓存残留是新架构构建问题的重灾区,执行这套“大扫除”命令:

# 清理前端依赖缓存
rm -rf node_modules
yarn cache clean
rm -f package-lock.json yarn.lock

# 清理Android端所有缓存
cd android
./gradlew clean
rm -rf .gradle build app/build
cd ..

# 重新安装依赖并触发构建
yarn install
RCT_NEW_ARCH_ENABLED=1 yarn android

步骤3:检查Gradle配置正确性

打开android/app/build.gradle,确认新架构的配置没有被误修改:

project.ext.react = [
  newArchEnabled: System.getenv("RCT_NEW_ARCH_ENABLED") == "1",
  // 其他原有配置保持默认即可
]

// 确保这行代码存在且在正确位置(一般在文件顶部)
apply from: "../../node_modules/react-native/react.gradle"

三、适配Vision Camera和Worklets Core的新架构配置

Vision Camera 4.6.4本身支持RN 0.78新架构,但Worklets Core的配置如果出错,会直接干扰Codegen的运行:

  1. 确认Worklets Babel插件配置
    打开babel.config.js,确保Worklets插件正确启用(这是Vision Camera Frame Processors的必要配置):
module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [
    ['react-native-worklets-core/plugin', { workletsEnabled: true }],
  ],
};
  1. 重新安装依赖确保完整性
    有时候依赖包会出现损坏,重新安装Vision Camera和Worklets Core:
yarn add react-native-vision-camera@^4.6.4 react-native-worklets-core@^1.5.0

四、权宜之计:临时修复自动生成代码的导入错误

如果上面的步骤都没解决问题,你可以手动修正自动生成文件里的错误导入(注意:这个修改会被下次构建覆盖,属于紧急临时方案):

  1. 打开自动生成的文件:/Users/socon/Documents/Chinmay/socon-mobile/android/app/build/generated/autolinking/src/main/java/com/facebook/react/ReactNativeApplicationEntryPoint.java
  2. 将错误的导入语句:
    import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
    
    替换为RN 0.78中该类的实际路径:
    import com.facebook.react.config.LegacyArchitectureLogger;
    
  3. 重新运行yarn android

针对你疑问的直接解答

  1. React Native 0.78和React 19、新架构的兼容性:RN 0.78官方未针对React 19做新架构适配,仅支持React 18.2.x稳定版,这是你碰到问题的核心诱因。
  2. LegacyArchitectureLogger导入错误的已知方案:核心是修复Codegen的生成逻辑(重新运行Codegen、清理缓存、匹配React版本),临时方案是手动修正导入路径。
  3. Vision Camera对新架构的影响:只要Worklets Core和Babel插件配置正确,Vision Camera不会干扰新架构,但配置错误会导致Codegen无法解析模块,进而引发自动生成代码的错误。

内容来源于stack exchange

火山引擎 最新活动