react native组件的卸载方法

华浩壤
2023-12-01

                                                            先unlink再uninstall
1,当你出现这样的报错:缺少***组件的路径,说明之前你可能干了一件蠢事,安装了组件之后并且link了,但是后面不需要这个组件了,(比如react-native-push-notification这个组件好像和react-native-marquee-ab两者不能共存的样子,,,反正安了push再安ab会报错,说已经有push了什么鬼,所以就卸载了push),所以你想卸载它但是直接uninstall了

2,然后你直接npm  uninstall   ×××,然后这个时候你再次reload是没有问题的(因为只是reload,并没有重新下载依赖包社么的)。
3,然后你接下来准备 react-native run-android,惨了,报错了:说缺少push-notification的路径
4,然后你又重新npm install  react-native-push-notification,结果又报错(说重复引用第三方包):
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
        Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:7:5-117 to override.
就是说建议添加tools:replace="android:appComponentFactory在AndroidManifest.xml:7:5-117中,以覆盖。          
5,然后你往提示的路径文件中添加   tools:replace="android:appComponentFactory",这个时候会报错说:Manifest merger failed with multiple errors, see logs。(你的tools没有基于定义吧)然后你把它改成这样:
android:appComponentFactory=""
 tools:replace="android:appComponentFactory"  
6,结果还是报错:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
7,也没啥路子可整了,这个时候突然想起来,是不是我的组件卸载的不到位,毕竟一开始就是因为组件依赖包不对。
8,这篇文章:点击   告诉我,原来卸载组件和安装流程是轴对称的:
  安装的时候npm  install,然后react-native link。卸载的时候react-native   unlink,然后才uninstall。
9,正常情况下自动删除干净了,如果还有问题,自己手动删除
10,下面补充一下步骤9中,手动删除出现的几个常见文件的含义作用:
   

 

 

 

 类似资料: