我将 React Native 集成到现有的 Android 项目中。代码编译得很好,但是当我到达我的应用程序中初始化 React Native 的部分时,应用程序崩溃。
回溯的相关部分:
java.lang.RuntimeException: Requested enabled DevSupportManager, but DevSupportManagerImpl class was not found or could not be created
Caused by: java.lang.RuntimeException: Requested enabled DevSupportManager, but DevSupportManagerImpl class was not found or could not be created
at com.facebook.react.devsupport.DevSupportManagerFactory.create(DevSupportManagerFactory.java:77)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at com.facebook.react.devsupport.DevSupportManagerFactory.create(DevSupportManagerFactory.java:70)
Caused by: java.lang.NoClassDefFoundError: com.facebook.react.bridge.JSPackagerWebSocketClient
at com.facebook.react.devsupport.DevServerHelper.<init>(DevServerHelper.java:108)
at com.facebook.react.devsupport.DevSupportManagerImpl.<init>(DevSupportManagerImpl.java:141)
关键部分是
java.lang.NoClassDefFoundError: com.facebook.react.bridge.JSPackagerWebSocketClient.
我不确定为什么找不到此类。在 React Native 源代码中发生此崩溃的位置是 here .
更新:如果相关,在此之前我遇到了编译时错误,我使用解决方案 here 修复了这些错误。 (不包括 okhttp-ws)我想知道这可能是造成这种情况的原因。
更新 2:我开始认为这与排除 okhttp-ws 有关,因为我注意到在 JSPackagerWebSocketClient.java
中有导入,例如:
import okhttp3.ws.WebSocket;
所以我想真正的问题是 original issue 的真正修复方法是什么?我有,这是:
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: okhttp3/internal/ws/RealWebSocket$1.class
我正在使用 React Native v0.31.0。
最佳答案
当我之前在调试菜单中启用“远程调试 JS”时,当我运行我的项目时,有时会出现该错误。
首先,关闭应用程序连接到的上一个网络浏览器选项卡,然后在应用程序中消除错误,然后禁用“远程调试 JS”并重新加载。
这是我描述的常见 JSPackagerWebSocketClient 错误的 1 个解决方案,但我不确定您的问题周围的所有情况, 例如您的集成过程、您的 android 配置、您运行应用程序的方式,或者可能是旧 RN 版本的问题。
关于java - 将 React Native 与 NoClassDefFoundError : com. facebook.react.bridge.JSPackagerWebSocketClient 集成后,Android 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42688854/