androidreact-nativeandroidxandroid-jetifier

Issues using AndroidX and React Native


I've been trying to integrate AndroidX into my hybrid React Native project, and I've run into the issue that Jetifier doesn't run on "local" projects. This results in all of my React Native libraries still using the old support libraries. I've put the appropriate lines into my gradle.properties file:

android.useAndroidX=true
android.enableJetifier=true

This works for any remote libraries, but React Native places all of it's libraries as local modules on disk.

I've tried a lot of things, but so far my best solution is a post package-install script that basically manually replaces all of the packages and add/removes libraries to the various gradle scripts.

This is a very manual process and not super sustainable. Is there a better way to handle this issue?


Solution

  • try using the npm Jetifier package below in a postinstall script

    https://www.npmjs.com/package/jetifier

    From the readme:

    Make sure your app is AndroidX
    npm install --save-dev jetifier
    npx jetify (may take a while)
    npx react-native run-android