android - 从 react-native-static-server 启动 StaticServer 时出错:未定义不是对象(评估“this.staticServer.start”)
问题描述
我将我的应用程序从 Expo 中分离出来,我安装并链接了 react-native-static-server 模块。我在 App.js 文件中添加了这段代码,就在组件定义之前,看看它是如何工作的:
import StaticServer from 'react-native-static-server';
const server = new StaticServer( 8080, { localOnly: false, keepAlive : true } );
server.start( ).then( ( url ) => {
console.log( "Serving at URL", url );
} );
现在,当我调用 start() 方法时出现此错误:
TypeError: undefined is not an object (evaluating 'this.staticServer.start')
应用程序不断崩溃并重新启动。到目前为止,我只在 Android 上测试过它。有人知道我做错了什么吗?我在 github 上没有看到任何关于此的问题。
我的应用程序的 Android Studio 中的 Logcat 显示以下内容:
D/ReactNative: ReactInstanceManager.createReactContextInBackground()
D/ReactNative: ReactInstanceManager.recreateReactContextInBackgroundInner()
W/unknown:ReactNative: Tried to enqueue runnable on already finished thread: 'native_modules... dropping Runnable.
W/MessageQueue: Handler (com.facebook.react.bridge.queue.MessageQueueThreadHandler) {14699d1} sending message to a Handler on a dead thread
java.lang.IllegalStateException: Handler (com.facebook.react.bridge.queue.MessageQueueThreadHandler) {14699d1} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:545)
at android.os.Handler.enqueueMessage(Handler.java:662)
at android.os.Handler.sendMessageAtTime(Handler.java:631)
at android.os.Handler.sendMessageDelayed(Handler.java:601)
at android.os.Handler.post(Handler.java:357)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl.runOnQueue(MessageQueueThreadImpl.java:61)
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:164)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
at java.lang.Thread.run(Thread.java:764)
解决方案
我查看了 react-native-static-server 存储库,发现它在过去两个月内没有更新。我认为它可能适用于两个月大的 react-native 版本。
我将 expo sdk 降级为 25,它基于 react-native@0.52。现在一切正常。
推荐阅读
- apache - HTTP 标头行 [group Name: XXX-OR-Migration^XXX-OR-Novation] 不符合 RFC 7230,已被忽略
- python - 在 Matplotlib 中的灰度图像上用颜色标记
- ubuntu - Ubuntu20.04上的Nvidia驱动
- java - OpenCV:如何在 Java 中绘制 connectedComponentsWithStats 标签
- oracle - PL/SQL - 如何通过与另一个表进行比较来找出表中缺失的值
- amazon-web-services - Terraform AWS 提供商:启动源实例时出错:不支持:当前不支持请求的配置
- python - 为 http 服务器和发布者分配单独的端口
- oracle - 我在创建触发器时遇到问题
- asp.net - ASP.NET MVC CORS 问题
- javascript - JavaScript 错误:“ReferenceError:sprLib 未定义”