我得到以下错误:
E/unknown:ReactNative: Exception in native call
java.lang.IllegalStateException: In order to use RNScreens components your app's activity need to extend ReactActivity
at com.swmansion.rnscreens.ScreenContainer.setupFragmentManager(ScreenContainer.kt:169)
at com.swmansion.rnscreens.ScreenContainer.onAttachedToWindow(ScreenContainer.kt:199)
at android.view.View.dispatchAttachedToWindow(View.java:21304)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:4239)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:4246)
at android.view.ViewGroup.addViewInner(ViewGroup.java:6001)
at android.view.ViewGroup.addView(ViewGroup.java:5777)
at android.view.ViewGroup.addView(ViewGroup.java:5717)
at com.facebook.react.uimanager.ViewGroupManager.addView(ViewGroupManager.java:37)
at com.facebook.react.uimanager.NativeViewHierarchyManager.manageChildren(NativeViewHierarchyManager.java:533)
at com.facebook.react.uimanager.UIViewOperationQueue$ManageChildrenOperation.execute(UIViewOperationQueue.java:217)
at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:997)
at android.view.Choreographer.doCallbacks(Choreographer.java:797)
at android.view.Choreographer.doFrame(Choreographer.java:728)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:984)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
当我试图将:public class RnActivity extends Activity implements DefaultHardwareBackBtnHandler {
更改为public class RnActivity extends ReactActivity implements DefaultHardwareBackBtnHandler {
时,正如错误提示的那样,我得到了一个新的错误:
E/mk_d : Utils: Error: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.rn_management.RnActivity}: java.lang.ClassCastException: com.android.Application cannot be cast to com.facebook.react.ReactApplication
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3654)
当我从我的RN包中移除react导航/本机堆栈时,一切都很好。此外,我还收到以下错误(这与此相关吗?):E/ThemeUtils: View class com.facebook.react.views.text.ReactTextView is and AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant)
发布于 2022-04-26 12:33:47
react本机屏幕是一个反应导航依赖关系,所以您需要使用它,以使导航工作。使用ReactActivity扩展您的活动,并在本地Android代码中创建或编辑应用程序类:
class YourApplication : Application(), ReactApplication, LifecycleObserver {...}
这里的链接https://reactnative.dev/docs/integration-with-existing-apps是有用的,如果你想集成反应-本机已经存在的应用程序,而不想实现ReactApplication和ReactActivity。
发布于 2022-04-26 12:15:34
你是用旧版的“反应本地人”吗?检查您的android/app/src/main/java/com/(your app)/MainActivity.java
文件&更改第一个类行以扩展ReactActivity,如果还没有-
public class MainActivity extends ReactActivity {
...
这应该满足您所得到的错误- ReactActivity也是扩展compat类,所以它可能也会修复您的另一个问题
https://stackoverflow.com/questions/72013625
复制相似问题