React Native App сбой после Splash Screen с сообщением "inicializando ..."Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 React Native App сбой после Splash Screen с сообщением "inicializando ..."

Сообщение Anonymous »

Я разрабатываю нативное приложение React с использованием Expo SDK и сталкиваю последовательную проблему сбоя. Приложение успешно отображает экран брызг, а затем кратко показывает сообщение «inicializando ...» (инициализация ...) «Перед сбоем и закрытием на Android». ~ 1-2 секунды < /li>
[*] ❌ Приложение сбои и полностью закрывается < /li>
❌ Нет видимых сообщений об ошибках для пользователя < /li>
< /ol>
Среда: < /strong> < /p>
  • reauct in expo < /p>

    reauct onfo < /li>

    reauct onfo> Устройство)
  • vScode As IDE
  • Среда разработки Windows

Структура кода:

PrettyPrint-Override ">

Код: Выделить всё

import React, { useEffect, useRef } from 'react';
import {
View,
Text,
StyleSheet,
Image,
StatusBar,
Animated as RNAnimated,
Dimensions
} from 'react-native';
import { LinearGradient } from 'expo-linear-gradient';
import * as Animatable from 'react-native-animatable';
import { useAppDispatch } from '../hooks/useRedux';
import { setCredentials } from '../store/slices/authSlice';
import { getUserData, getAuthToken } from '../utils/storage';
import colors from '../themes/colors';

const SplashScreen = ({ onFinish }: SplashScreenProps) => {
const dispatch = useAppDispatch();

// ...animated values initialization...

useEffect(() => {
const initializeApp = async () => {
try {
console.log('🚀 SplashScreen: Iniciando inicialização...');

// Animations setup...

// Check for existing authentication
const userData = await getUserData();
const token = await getAuthToken();

if (userData && token) {
dispatch(setCredentials({ user: userData, token }));
}

await new Promise(resolve => setTimeout(resolve, 3000));
onFinish();

} catch (error) {
console.error('❌ SplashScreen: Erro na inicialização:', error);
setTimeout(() => onFinish(), 1000);
}
};

initializeApp();
}, [dispatch, onFinish]);

// ...render method...
};
Appnavigator.tsx:

Код: Выделить всё

import React, { useState, useEffect, useRef } from 'react';
import { NavigationContainer, createNavigationContainerRef } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AuthNavigator from './AuthNavigator';
import SimpleMainNavigator from './SimpleMainNavigator';
import { useAppSelector } from '../hooks/useRedux';

export const navigationRef = createNavigationContainerRef();
const Stack = createNativeStackNavigator();

export default function AppNavigator() {
const [isReady, setIsReady] = useState(false);
const [error, setError] = useState(null);

let isAuthenticated = false;
let darkMode = false;

try {
const authState = useAppSelector(state => state?.auth);
const themeState = useAppSelector(state => state?.theme);

isAuthenticated = Boolean(authState?.isAuthenticated);
darkMode = Boolean(themeState?.darkMode);
} catch (err) {
console.error('❌ AppNavigator: Error reading Redux state:', err);
setError('Erro ao carregar dados do aplicativo');
}

// ...navigation setup...

return (
 setIsReady(true)}
fallback={}
>

{isAuthenticated ? (

) : (

)}


);
}
Используемые зависимости:

Код: Выделить всё

{
"expo": "~51.0.0",
"@react-navigation/native": "^6.0.0",
"@react-navigation/drawer": "^6.0.0",
"@reduxjs/toolkit": "^1.9.0",
"expo-linear-gradient": "~13.0.2",
"expo-secure-store": "~13.0.2",
"react-native-animatable": "^1.3.3",
"expo-blur": "~13.0.2"
}
Что я попробовал:

[*] границы ошибок: добавлены блоки для переборок вокруг селекторов Redux и навигации
[*] Упрощенные компоненты: Stelected Completry и Animation [*] [*] [*] Вопросы:

Как я могу эффективно отладить этот аварий? logcat , который покажет фактическую трассу стека с аварий? Point? Господнее.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -message-e
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»