我正在尝试在我的 RN 项目中使用 React Navigation,但是当我安装react-native-screens(这是它工作所需的包)时,我无法再次构建该项目。
我得到的错误如下:
Task :react-native-screens:compileDebugKotlin FAILED
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
Run Code Online (Sandbox Code Playgroud)
我尝试了一些我看到其他人做的事情,但到目前为止没有任何效果。
你能帮助我吗?谢谢
我们遇到了一个问题,即我们的 React Native Android 应用程序由于内存泄漏而在某些设备上崩溃。虽然它在大多数设备上都能完美运行,但大约 25% 的用户报告了此崩溃。该问题已通过 Crashlytics 进行跟踪,并使用 LeakCanary 进行进一步调查,发现在屏幕(底部选项卡或堆栈导航)之间导航时会发生内存泄漏。
\n演示问题的存储库 Github 链接
\n下面是导航结构:
\n// main navigation\n<NavigationContainer>\n <Stack.Navigator>\n <Stack.Screen name="Auth" component={Auth} />\n <Stack.Screen name="App" component={Drawer} />\n </Stack.Navigator>\n</NavigationContainer>\n\n// drawer\n<Drawer.Navigator drawerContent={(props) => <DrawerContent {...props} />}>\n <Drawer.Screen name="Main" component={BottomTabs} />\n</Drawer.Navigator>\n\n\n// Bottom Tabs\n<BottomTab.Navigator>\n <BottomTab.Screen name="Tab1" component={Stack1} />\n <BottomTab.Screen name="Tab2" component={Stack2} />\n <BottomTab.Screen name="Tab3" component={Stack3} />\n <BottomTab.Screen name="Tab4" component={Stack4} />\n</BottomTab.Navigator>\n\n// Stack 1 \n<Stack.Navigator>\n <Stack.Screen name="Main" component={Screen} />\n <Stack.Screen name="Screen2" component={Screen2} />\n <Stack.Screen name="Screen3" component={Screen3} />\n <Stack.Screen name="Screen4" component={Screen4} />\n <Stack.Screen name="Screen5" …Run Code Online (Sandbox Code Playgroud) android react-native react-navigation react-native-reanimated react-native-screens
我必须为 android 重建我的 gradle,现在我遇到了 RNScreens 错误。
\nFailed to find fragment for React Root View在应用程序中显示。
这是日志猫:
\n2022-08-20 22:54:02.259 9195-9241/com.testApp.testApp E/WM-WorkerWrapper: Work [ id=b68c8532-e3ae-455d-9d84-a0a859f26e40, tags={ FOCUS_LOST_WORKER_TAG, com.onesignal.OSFocusHandler$OnLostFocusWorker } ] failed because it threw an exception/error\n java.util.concurrent.ExecutionException: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference\n at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)\n at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)\n at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)\n at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\n at java.lang.Thread.run(Thread.java:919)\n Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference\n …Run Code Online (Sandbox Code Playgroud) .../node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java:26: 错误:找不到符号 导入 com.facebook.react.views.text.ReactTypefaceUtils; ^ 符号:类 ReactTypefaceUtils 位置:包 com.facebook.react.views.text
.../node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java:247:错误:找不到符号字体titleTypeface = ReactTypefaceUtils.applyStyles(^符号:变量ReactTypefaceUtils位置: 类 ScreenStackHeaderConfig
.../node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.java:377: 错误:找不到符号 mTitleFontWeight = ReactTypefaceUtils.parseFontWeight(fontWeightString); ^ 符号:变量 ReactTypefaceUtils 位置:类 ScreenStackHeaderConfig
我正在使用 "react": "16.9.0", "react-native": "0.61.5", "react-native-screens": "^3.1.1",
我面临这个问题
包react-native-screens已被忽略,因为它包含无效的配置。原因:不允许“dependency.platforms.android.componentDescriptors”
android react-native react-native-screens react-native-reanimated-v2