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

Android端React Native应用编译失败:找不到RNScreensPackage类

React Native Android构建报错:找不到RNScreensPackage的解决办法

问题详情

编译Android应用时触发错误:无法找到符号 import com.swmansion.rnscreens.RNScreensPackage;,报错位置在android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java第33行。

复现步骤

  • 执行 npm i react-native-screens
  • 执行 npm run android

可行解决方案

1. 核对版本兼容性

react-native-screens和React Native版本有适配要求,比如高版本的screens可能需要RN 0.68及以上版本。先查看项目package.json里的RN版本,再安装对应适配的screens版本:

# 示例:安装适配RN 0.66的版本
npm i react-native-screens@3.15.0

2. 彻底清理缓存后重构

生成的PackageList文件可能是缓存残留导致的错误,按以下步骤清理:

  • 清理npm缓存:
npm cache clean --force
  • 清理Android构建缓存:
cd android && ./gradlew clean && cd ..
  • 删除依赖和锁文件:
rm -rf node_modules package-lock.json yarn.lock
  • 重新安装依赖:
npm install

3. 手动配置Android端(自动链接失效时用)

如果自动链接没生效,手动配置以下文件:

  • 打开android/settings.gradle,添加:
include ':react-native-screens'
project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android')
  • 打开android/app/build.gradle,在dependencies块里添加:
implementation project(':react-native-screens')
  • 若MainApplication.java未自动添加包,手动引入并添加到包列表:
import com.swmansion.rnscreens.RNScreensPackage;

// ...

@Override
protected List<ReactPackage> getPackages() {
  List<ReactPackage> packages = new PackageList(this).getPackages();
  packages.add(new RNScreensPackage());
  return packages;
}

4. 同步Android SDK版本

确保项目的Android SDK版本和react-native-screens要求一致,建议使用33或34版本,修改android/build.gradle:

buildscript {
    ext {
        compileSdkVersion = 33
        targetSdkVersion = 33
        // 其他配置保持不变
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:05:17