将React Native与NoClassDefFoundError集成后Android应用程序崩溃:com.facebook.react.bridge.JSPackagerWebSocketClient

Lir*_*dav 22 java android react-native

我将React Native集成到现有的Android项目中.代码编译得很好,但是当我到达我的应用程序初始化React Native的部分时,应用程序崩溃了.

回溯的相关部分:

java.lang.RuntimeException:请求启用DevSupportManager,但未找到或无法创建DevSupportManagerImpl类引起:java.lang.RuntimeException:请求启用DevSupportManager,但未找到或无法在com.facebook中创建DevSupportManagerImpl类. react.devsupport.DevSupportManagerFactory.create(DevSupportManagerFactory.java:77)由以下内容引起:java.lang.reflect.InvocationTargetException:java.lang.reflect.Constructor.newInstance(Native Method)at com.facebook.react.devsupport.DevSupportManagerFactory.create (DevSupportManagerFactory.java:70)由com.facebook.react的com.facebook.react.devsupport.DevServerHelper.(DevServerHelper.java:108)中的java.lang.NoClassDefFoundError:com.facebook.react.bridge.JSPackagerWebSocketClient引起. devsupport.DevSupportManagerImpl.(DevSupportManagerImpl.java:141)

关键部分是

java.lang.NoClassDefFoundError:com.facebook.react.bridge.JSPackagerWebSocketClient`.

我不确定为什么不会找到这门课.React Native源代码中发生此崩溃的位置在此处.

更新:如果它是相关的,我在此之前得到了编译时错误,我在这里修复了解决方案(不包括okhttp-ws),我想知道这可能导致这个问题.

更新2:我开始认为这与排除okhttp-ws有关,因为我在JSPackagerWebSocketClient.java中注意到有以下导入:

import okhttp3.ws.WebSocket;
Run Code Online (Sandbox Code Playgroud)

所以我想真正的问题是我遇到的原始问题的真正解决方法是什么,即:

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:okhttp3/internal/ws/RealWebSocket $ 1.class

我正在使用React Native v0.31.0.

Cod*_*ute 1

当我以前在运行项目时在调试菜单中启用“远程调试 JS”时,有时会出现该错误。

首先,关闭应用程序连接到的上一个 Web 浏览器选项卡,然后在应用程序中消除错误,然后禁用“远程调试 JS”并重新加载。

这是我描述的常见 JSPackagerWebSocketClient 错误的 1 个解决方案,但我不确定您的问题的所有条件,例如您的集成过程、您的 android 配置、您如何运行应用程序,或者可能是旧 RN 版本的问题。