首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >响应导航/本机堆栈在Android上不起作用

响应导航/本机堆栈在Android上不起作用
EN

Stack Overflow用户
提问于 2022-04-26 12:04:24
回答 2查看 544关注 0票数 1

我得到以下错误:

代码语言:javascript
运行
复制
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 {时,正如错误提示的那样,我得到了一个新的错误:

代码语言:javascript
运行
复制
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)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-26 12:33:47

react本机屏幕是一个反应导航依赖关系,所以您需要使用它,以使导航工作。使用ReactActivity扩展您的活动,并在本地Android代码中创建或编辑应用程序类:

代码语言:javascript
运行
复制
class YourApplication : Application(), ReactApplication, LifecycleObserver {...}

这里的链接https://reactnative.dev/docs/integration-with-existing-apps是有用的,如果你想集成反应-本机已经存在的应用程序,而不想实现ReactApplication和ReactActivity。

票数 1
EN

Stack Overflow用户

发布于 2022-04-26 12:15:34

你是用旧版的“反应本地人”吗?检查您的android/app/src/main/java/com/(your app)/MainActivity.java文件&更改第一个类行以扩展ReactActivity,如果还没有-

代码语言:javascript
运行
复制
public class MainActivity extends ReactActivity {
  ...

这应该满足您所得到的错误- ReactActivity也是扩展compat类,所以它可能也会修复您的另一个问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72013625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档