添加项目依赖后EAS Build报错:cannot find symbol: class ExpoModulesPackage
害,我前阵子刚踩过几乎一模一样的坑!折腾了好一阵才摸清楚解决方向,给你分享几个亲测有用的思路,你挨个试试:
先核对依赖版本适配性:特别是
react-native-reanimated和你用的Expo SDK版本得严丝合缝!比如Expo SDK 49要配reanimated 3.x,版本不搭的话,编译时很容易触发这类找不到类的错误。你去package.json里瞅一眼版本,不对就改成官方推荐的兼容版,然后删掉node_modules、package-lock.json(或yarn.lock),重新跑npm install(或yarn install)装一遍依赖。清空EAS构建缓存:缓存里的旧文件经常搞偷袭!触发构建的时候加个
--clear-cache参数,也就是跑eas build --platform android --clear-cache,让构建环境彻底从头来一遍,避免旧缓存残留的脏数据搞破坏。检查MainApplication.java配置:打开
android/app/src/main/java/[你的项目包名]/MainApplication.java,看看ExpoModulesPackage的导入和初始化有没有出问题。有时候加新依赖会不小心打乱这个文件的配置,你可以对比下刚初始化的空Expo项目里这个文件的内容,把错漏的地方修正回来,确保Expo的模块包能正确加载。确认react-native-reanimated的配置:如果你手动改过reanimated的配置(比如CMake相关设置),大概率是这里出岔子了。检查
android/build.gradle里的CMake路径设置,还有android/app/build.gradle里的reanimated相关配置,是不是和Expo的集成要求一致。另外别忘了,reanimated在Expo里需要在babel.config.js里加对应的插件,这个步骤可别漏了。排查依赖冲突:新添加的依赖里可能藏着和Expo模块系统不兼容的货。你可以试着逐个移除最近加的依赖,每次移除后跑一次EAS Build,找到那个“罪魁祸首”,再针对性地解决它的适配问题。
内容来源于stack exchange

