Expo 仅适用于 Web,在 Android 上失败并出现多个问题

问题描述 投票:0回答:2

我的项目主要基于这个boilerplate。为了不在以后的部署中遇到麻烦,我使用

expo

现在我只是想知道为什么部署到 Android 不起作用。当我将它部署到网络上时,它工作得很好,没有任何问题。但是 expo android deploy 给了我 expo android log,并且在 Android 模拟器上:

android emulator error

但是项目结构很干净并且

index.css
工作正常

project structure

Run in web
Run on android
有什么区别?

当我刚刚删除该index.css进行测试时。 Web 仍然可以使用,但没有样式。但在 Android 上,我现在在使用的

localstorage
上遇到另一个错误。

我知道

react-native
react-web
之间有区别。但我认为
expo
能够处理这个问题。也许我对
expo
期望太高了?那么我的想法是不是错了,一切都很好。我所要做的就是让它在 Android 上运行,比如修复
index.css
问题和
localstorage
?或者有没有更智能的方法让我的
react-web
应用程序在我的 Android 设备上运行?

android reactjs react-native expo
2个回答
1
投票

所以

react-native
react-native-web
非常不同。

  • react-native
    - 使用本机 UI 控件并拥有对本机平台的完全访问权限
  • react-native-web
    - 将 React Native 的平台无关组件和 API 引入到 Web

虽然可以将

react-native-web
用于 Web 和 Android 等本机,但不建议这样做。您总是必须采取解决方法,例如使用
localstorage

最好完全切换到

react-native
重写所有代码以本机方式工作。就像您现在必须直接在代码中创建
index.css
一样,而不是使用
Stylesheet


但是对于这种情况,有人真的想使用问题中的样板,您需要重构代码。 here对此进行了描述。 但总而言之,你需要一个像这样的助手

App.js

// /App.js
import React from 'react';
import HybridApp from './src/App';
const App = (props) => {
  return (
    <HybridApp />
  );
}
export default App;

0
投票

我面临着同样的问题,就像如果我在网络上运行它,它可以工作,但如果我在手机或 Android Studio 模拟器上运行它,那就不起作用了。 所以问题是我的电脑正在使用病毒防护应用程序,而该应用程序不允许网络连接。所以将其关闭并尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.