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

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>
    );
}

排查与解决方案

  1. 检查TabBarIcon组件实现
    错误指向RCTImageView的source属性类型错误,当前页面未直接使用Image,但底部TabBar的TabBarIcon可能存在问题。查看@/components/navigation/TabBarIcon代码,确保传递给Image的source格式合法:

    • 本地图片用require('./path/to/image.png')
    • 网络图片用{uri: 'https://example.com/image.png'}
    • 若用图标库(如Ionicons),确保传递图标名称而非数字参数。
  2. 检查Tab.Screen的图标配置
    确认每个Tabs.Screen的options中,tabBarIcon未误将数字(如size值)传递给Image的source属性。

  3. 清除Expo Go缓存
    在手机Expo Go里长按当前项目图标,选择「清除缓存」,再重新启动隧道模式项目。

  4. 升级依赖版本
    执行npx expo upgrade,将expo、expo-router及相关依赖升级到最新稳定版,修复潜在的版本兼容性问题。

  5. 清理项目缓存
    删除项目根目录的.expo文件夹后重新启动项目,清除残留的错误缓存资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:08:11