Expo项目本地正常,Expo Go测试时出现RCTImageView报错
Expo Go隧道模式启动时RCTImageView类型转换错误
本地执行npx expo start项目运行正常,但用npx expo start --tunnel -c通过Expo Go在手机测试时,触发以下错误:
Error while updating property 'source' of a view managed by : RCTImageView java.lang.double cannot be cast to com.facebook.react.bridge.ReadableArray
已尝试注释所有图片、使用仅含<Text>Test</Text>的最简页面测试,甚至删除所有图片及相关source属性,错误仍未消除。
相关代码
index 文件
import React, { useEffect, useState } from 'react'; import {View, Text, Image, ImageBackground, TouchableOpacity, ScrollView, Alert} from 'react-native'; import LottieView from 'lottie-react-native'; import {Picker} from "@react-native-picker/picker"; import 'intl-pluralrules'; // Polyfill pour Intl.PluralRules const App: React.FC = () => { return ( <View> <Text>Test</Text> </View> ); }; export default App;
TabLayout 文件
import { Tabs } from 'expo-router'; import React, {useEffect, useState} from 'react'; import { View, Text, Image } from 'react-native'; import { TabBarIcon } from '@/components/navigation/TabBarIcon'; import { Colors } from '@/constants/Colors'; import { useColorScheme } from '@/hooks/useColorScheme'; export default function TabLayout() { const colorScheme = useColorScheme(); return ( <Tabs screenOptions={{ tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint, headerShown: false, tabBarStyle: { backgroundColor: 'midnightblue', }, }}> <Tabs.Screen name="index" /> <Tabs.Screen name="index_test" /> <Tabs.Screen name="index_profil" /> <Tabs.Screen name="index_c" /> <Tabs.Screen name="parameters" /> </Tabs> ); }
排查与解决方案
检查TabBarIcon组件实现
错误指向RCTImageView的source属性类型错误,当前页面未直接使用Image,但底部TabBar的TabBarIcon可能存在问题。查看@/components/navigation/TabBarIcon代码,确保传递给Image的source格式合法:- 本地图片用
require('./path/to/image.png') - 网络图片用
{uri: 'https://example.com/image.png'} - 若用图标库(如Ionicons),确保传递图标名称而非数字参数。
- 本地图片用
检查Tab.Screen的图标配置
确认每个Tabs.Screen的options中,tabBarIcon未误将数字(如size值)传递给Image的source属性。清除Expo Go缓存
在手机Expo Go里长按当前项目图标,选择「清除缓存」,再重新启动隧道模式项目。升级依赖版本
执行npx expo upgrade,将expo、expo-router及相关依赖升级到最新稳定版,修复潜在的版本兼容性问题。清理项目缓存
删除项目根目录的.expo文件夹后重新启动项目,清除残留的错误缓存资源。
内容的提问来源于stack exchange,提问作者yggdraes13
相关产品推荐
相关产品推荐

