使用AndroidX和React Native时出现的问题

29

我一直在尝试将AndroidX集成到我的混合React Native项目中,但我遇到了这样一个问题:Jetifier在“本地”项目上无法运行。这导致我的所有React Native库仍在使用旧的支持库。我已经将适当的行放入我的gradle.properties文件中:

android.useAndroidX=true
android.enableJetifier=true

这适用于任何远程库,但React Native将所有的库都放在本地磁盘上作为本地模块。

我尝试了很多方法,但到目前为止,最好的解决方案是一个后安装脚本,基本上手动替换所有包并添加/删除库到各种gradle脚本中。

这是一个非常手动的过程,不太可持续。有没有更好的方法来处理这个问题?


这是React Native GitHub上与您的问题对应的问题。https://github.com/facebook/react-native/issues/23112.很可能很快就会解决,因此在使用AndroidX时不会遇到任何问题。 - Kamo Spertsian
你有那个脚本方便的地方吗?能否提供一份要点摘要?谢谢。 - Brenwell
很遗憾,我们决定暂时不迁移到AndroidX。由于它的不可持续性,我们最终没有完成脚本。但希望修复措施能够很快合并! - Chubacca
我通过forking repos(大约8个)并将yarn重定向到使用这些forks来实现此目的:https://github.com/greg7gkb?tab=repositories 与其编写脚本,我将forked lib导入Android Studio,并运行Refactor -> Migrate to AndroidX。这是一个临时解决方案,直到上述问题得到官方解决。 - greg7gkb
有没有比手动分叉包并迁移到androidx更好的解决方案?在这些版本发布之后,我的React Native项目无法构建Android。 - Taylor Johnson
3个回答

32
在后安装脚本中尝试使用下面的npm Jetifier包,具体内容请参考https://www.npmjs.com/package/jetifier中的说明。
Make sure your app is AndroidX
npm install --save-dev jetifier
npx jetify (may take a while)
npx react-native run-android

1
我遇到了以下错误,这个答案解决了我的问题。package android.support.annotation does not exist - refik

3

目前,无需单独安装Jetifier。

只需要使用

npx jetify

1

哇,Android Studio 这次居然让事情变得容易了! - David Jarrin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接