运行npx expo run:android时expo-dev-menu编译Kotlin失败
针对运行npx expo run:android时出现的PanGestureHandler.kt类型不匹配(推断类型为Context?,但需要Context)问题,以下是几种可行的解决方案:
强制锁定
expo-dev-menu版本
由于expo-dev-menu是expo-dev-client的依赖,可通过包管理器的版本锁定功能指定兼容Expo 46的版本:- npm用户:在
package.json中添加overrides字段"overrides": { "expo-dev-menu": "2.1.0" } - Yarn用户:在
package.json中添加resolutions字段"resolutions": { "expo-dev-menu": "2.1.0" }
添加后执行
npm install或yarn install,再重新运行编译命令。- npm用户:在
清理Android构建缓存
缓存残留可能导致编译异常,执行以下命令清理后重新构建:cd android && ./gradlew clean cd .. && npx expo prebuild --clean npx expo run:android调整Kotlin版本适配
打开android/build.gradle文件,确保Kotlin版本与Expo 46兼容(推荐1.6.10):buildscript { ext { kotlin_version = "1.6.10" // 其他原有配置保留 } }修改后重新执行编译。
临时禁用Dev Menu(应急方案)
如果以上方案无效,可临时关闭Dev Menu功能:
在app.json或app.config.js的expo配置中添加:"devClient": { "enabled": false }执行
npx expo prebuild后重新编译。
内容的提问来源于stack exchange,提问作者Vladislav Cherkasheninov
相关产品推荐
相关产品推荐

