Expo安装报错:Unresolved reference: expo 技术求助
Expo 安装失败:MainActivity.kt 无法解析 expo 引用
问题详情
- 自动安装Expo时,
MainActivity.kt文件出现导入和顶层声明错误 - 手动添加代码
import expo.modules.ReactActivityDelegateWrapper后,触发Unresolved reference: expo错误 - 相同操作在朋友电脑上可正常运行,同步环境版本后问题仍未解决,已尝试网络搜索及Expo Discord求助,均无有效结果
构建日志
C:\Users\dberk\GitHub\tebfaktoring> yarn run aos:prod yarn run v1.22.22 $ SET ENVFILE=.env.production && react-native run-android --mode=productionDebug --appIdSuffix=production 警告:包 rn-fetch-blob 包含无效配置:"dependency.hooks" 不被允许。请使用 "npx react-native config" 命令验证其是否正确链接,并联系包维护者解决此问题。 信息:此项目的开发服务器已在端口8081运行。 信息:正在安装应用... > 配置项目 :app 从 .env.production 读取环境变量 > 配置项目 :notifee_react-native :notifee_react-native @notifee/react-native 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@notifee\react-native :notifee_react-native package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@notifee\react-native\package.json :notifee_react-native:版本从package.json设置为7.8.2 (7,8,2 - 7008002) :notifee_react-native:android.compileSdk 使用自定义值:34 :notifee_react-native:android.targetSdk 使用自定义值:34 :notifee_react-native:android.minSdk 使用自定义值:21 :notifee_react-native:reactNativeAndroidDir C:\Users\dberk\GitHub\tebfaktoring\node_modules\react-native\android > 配置项目 :react-native-firebase_app :react-native-firebase_app package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\app\package.json :react-native-firebase_app:firebase.bom 使用默认值:32.8.1 :react-native-firebase_app:play.play-services-auth 使用默认值:21.0.0 :react-native-firebase_app package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\app\package.json :react-native-firebase_app:版本从package.json设置为19.2.2 (19,2,2 - 19002002) :react-native-firebase_app:android.compileSdk 使用自定义值:34 :react-native-firebase_app:android.targetSdk 使用自定义值:34 :react-native-firebase_app:android.minSdk 使用自定义值:21 :react-native-firebase_app:reactNativeAndroidDir C:\Users\dberk\GitHub\tebfaktoring\node_modules\react-native\android > 配置项目 :react-native-firebase_database :react-native-firebase_database package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\database\package.json :react-native-firebase_app package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\app\package.json :react-native-firebase_database:firebase.bom 使用默认值:32.8.1 :react-native-firebase_database package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\database\package.json :react-native-firebase_database:版本从package.json设置为19.2.2 (19,2,2 - 19002002) :react-native-firebase_database:android.compileSdk 使用自定义值:34 :react-native-firebase_database:android.targetSdk 使用自定义值:34 :react-native-firebase_database:android.minSdk 使用自定义值:21 :react-native-firebase_database:reactNativeAndroidDir C:\Users\dberk\GitHub\tebfaktoring\node_modules\react-native\android > 配置项目 :react-native-firebase_messaging :react-native-firebase_messaging package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\messaging\package.json :react-native-firebase_app package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\app\package.json :react-native-firebase_messaging:firebase.bom 使用默认值:32.8.1 :react-native-firebase_messaging package.json 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules\@react-native-firebase\messaging\package.json :react-native-firebase_messaging:版本从package.json设置为19.2.2 (19,2,2 - 19002002) :react-native-firebase_messaging:android.compileSdk 使用自定义值:34 :react-native-firebase_messaging:android.targetSdk 使用自定义值:34 :react-native-firebase_messaging:android.minSdk 使用自定义值:21 :react-native-firebase_messaging:reactNativeAndroidDir C:\Users\dberk\GitHub\tebfaktoring\node_modules\react-native\android > 配置项目 :react-native-reanimated Android Gradle插件:8.1.1 Gradle:8.3 > 配置项目 :react-native-vision-camera [VisionCamera] 感谢使用VisionCamera ?? [VisionCamera] node_modules 位于 C:\Users\dberk\GitHub\tebfaktoring\node_modules [VisionCamera] VisionCamera_enableFrameProcessors 设置为true! [VisionCamera] 未找到react-native-worklets-core,帧处理器已禁用! [VisionCamera] VisionCamera_enableCodeScanner 设置为true! 警告:指定的Android SDK Build Tools版本(33.0.0)被忽略,因为它低于Android Gradle Plugin 8.1.1支持的最低版本(33.0.1)。 将使用Android SDK Build Tools 33.0.1。 要抑制此警告,请从build.gradle文件中移除"buildToolsVersion '33.0.0'",因为每个版本的Android Gradle Plugin现在都有默认的构建工具版本。 正在检查C:\Users\dberk\AppData\Local\Android\Sdk\licenses中Android SDK Platform 33的许可证 已接受Android SDK Platform 33的许可证。 准备"安装Android SDK Platform 33(修订版3)"。 "安装Android SDK Platform 33(修订版3)"已就绪。 正在将Android SDK Platform 33安装到C:\Users\dberk\AppData\Local\Android\Sdk\platforms\android-33 "安装Android SDK Platform 33(修订版3)"完成。 "安装Android SDK Platform 33(修订版3)"结束。 > 任务 :app:compileProductionDebugKotlin 失败 构建中使用了已弃用的Gradle功能,导致其与Gradle 9.0不兼容。 可以使用'--warning-mode all'显示单个弃用警告,以确定它们来自您自己的脚本还是插件。 453个可执行任务:7个已执行,446个最新 提示:请确保已正确设置开发环境,可运行npx react-native doctor进行检查。 e: file:///C:/Users/dberk/GitHub/tebfaktoring/android/app/src/main/java/com/tebfaktoring/MainActivity.kt:2:8 无法解析引用:expo 构建失败,出现异常。 * 错误原因: 任务':app:compileProductionDebugKotlin'执行失败。 > 执行org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction时发生失败 > 编译错误。请查看日志获取更多详细信息 * 尝试解决: > 使用--stacktrace选项获取堆栈跟踪。 > 使用--info或--debug选项获取更多日志输出。 > 使用--scan选项获取完整洞察。 构建耗时27秒 错误:应用安装失败。命令执行失败,退出代码1:gradlew.bat app:installProductionDebug -PreactNativeDevServerPort=8081 e: file:///C:/Users/dberk/GitHub/tebfaktoring/android/app/src/main/java/com/tebfaktoring/MainActivity.kt:2:8 无法解析引用:expo 构建失败,出现异常。* 错误原因:任务':app:compileProductionDebugKotlin'执行失败。> 执行org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction时发生失败> 编译错误。请查看日志获取更多详细信息* 尝试解决:> 使用--stacktrace选项获取堆栈跟踪。> 使用--info或--debug选项获取更多日志输出。> 使用--scan选项获取完整洞察。构建耗时27秒。 信息:使用--verbose标志运行CLI获取更多详细信息。 错误:命令执行失败,退出代码1。 PS C:\Users\dberk\GitHub\tebfaktoring>
排查方案
- 确认Expo依赖安装状态
执行yarn add expo确保依赖已正确添加,然后清理缓存并重新安装:yarn cache clean yarn install - 检查Android Gradle配置
- 打开
android/build.gradle,确认已添加Expo的Maven仓库:allprojects { repositories { // 其他仓库 maven { url 'https://maven.expo.dev' } } } - 确认
android/app/build.gradle中已应用Expo插件(如果使用自动配置)
- 打开
- 清理构建缓存并重新编译
在项目的android目录下执行:./gradlew clean ./gradlew assembleProductionDebug - 验证MainActivity.kt代码完整性
确保代码结构正确,示例如下:import android.os.Bundle import com.facebook.react.ReactActivity import expo.modules.ReactActivityDelegateWrapper class MainActivity : ReactActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(null) } override fun createReactActivityDelegate() = ReactActivityDelegateWrapper( this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, ::MainApplication ) } - 检查构建模式配置
确认生产构建模式下未排除Expo相关依赖,.env.production中无影响依赖加载的配置
内容的提问来源于stack exchange,提问作者GAIUS12100
相关产品推荐
相关产品推荐

