-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: React Native 77 Android build failure (#3380) #3394
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
- Perform changes recommended by the Upgrade Helper - Didn't update gradle-wrapper.jar since it is a binary file - Didn't manually remove all of the RnDiffAppTests/OrganizeTests references. I only kept the ones that were created by removing OrganizeTests.m and OrganizeTests Info.plist - Converted AppDelegate.mm to AppDelegate.swift - https://github.com/guardianproject/orbot-apple/blob/57dae6f/Orbot/AppDelegate.swift#L29 - https://github.com/haqq-network/haqq-wallet/blob/c6687e3/ios/AppDelegate.swift#L67-L73 - https://react-native-community.github.io/upgrade-helper/?from=0.75.3&to=0.77.0&package=app.getorganize.organize&name=Organize - Update local dev machine node from v23.3.0 to v23.6.1 and npm from 10.9.0 to 10.9.2 to fix a warning that happened when running `npm run` commands - npm/cli#7857 (comment) - Use align-deps to update and align dependencies - Fix "2 vulnerabilities (1 moderate, 1 high)" with `npm audit fix` - Update react-native-vision-camera from 4.5.3 to 4.6.3 to fix a build error - mrousavy/react-native-vision-camera#3263 - Fixed another react-native-vision-camera Android build error - Opened PR: mrousavy/react-native-vision-camera#3394 - Added devDependency on [email protected] to bring this fix in locally until the PR is merged - https://github.com/ds300/patch-package - Upgraded react-native-modal-datetime-picker from 17.1.0 to 18.0.0 to fix a default props warning - mmazzarolo/react-native-modal-datetime-picker#755 - https://github.com/mmazzarolo/react-native-modal-datetime-picker/releases/tag/v18.0.0 - Fix Android shadows looked bad by migrating from elevation to boxShadow, which was newly added in 77 - https://reactnative.dev/docs/view-style-props#boxshadow - https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow - Update react-native-pager-view from 6.4.1 to 6.7.0 to fix an android crash when navigating to FlaggedContent, then hitting the back button - callstack/react-native-pager-view#944 - https://github.com/callstack/react-native-pager-view/releases/tag/v6.6.1 - Fix CountdownClockBorder flicker on touch down by migrating from react native's built-in Animated to react-native-reanimated - This was caused by react native 77 using the new architecture by default - Add dependency on [email protected] - https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started/ - Previously removed in 7b0b38a - Fix iOS RefreshControl not shown on mount - This was caused by react native 77 using the new architecture by default - Created PR on react-native: facebook/react-native#49240 - Used patch-package to bring this in locally until the PR is merged - Fix failing jest tests by removing jestSetupMockReactNavigation.ts - According to the docs, the mock is only needed when using DrawerNavigator or (non-native) StackNavigator - https://reactnavigation.org/docs/testing/#mocking-native-modules - Fix ListEmptyComponent briefly shown even though first page was non-empty - This was caused by react native 77 using the new architecture by default - This affected useModels, usePrependedModels, and useLeadItems because they used useEffect when they should have used useMemo, causing a render delay between when ready was true and when models were non-empty - As a result of the change from useEffect to useMemo in Models, I had to remove the isEqual check. This caused useModel consumers to have more renders than previously, since previously the isEqual check debounced many re-renders, e.g. when fetching data from the backend updated the cache, but didn't affect any of the ids watched by the specific instance of useModels - I updated useModelCache, which aleviated some of these unnecessary re-renders, but the scenario mentioned above still causes re-renders - The only place these new renders caused real issues was with OrgGraph. The useModelCache change fixed a re-render on pull-to-refresh of the OrgGraph. However, I specifically needed to debounce officers in VisGraphData or else selecting a node would trigger an OrgGraph re-render - Update react-native-screens from 4.5.0 to 4.6.0 to fix an issue where HeaderButton onPress was ignored on Android devices - react-navigation/react-navigation#12274 - software-mansion/react-native-screens#2219 (comment) - Add an override to rnx-kit config, since it expected react-native-screens to be 4.5.0 instead of 4.6.0 for react native 77 - https://microsoft.github.io/rnx-kit/docs/tools/align-deps#presets - https://microsoft.github.io/rnx-kit/docs/architecture/dependency-management#extensions - https://github.com/microsoft/rnx-kit/tree/main/packages/align-deps#configure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Works for me :). Please, merge this soon. |
This fixed for me as well. Please check and merge @mrousavy :) |
Hey - why exactly do we need to add the dependency on androidx lifecycle now? |
Could it be related to the Kotlin version bump that happened in 0.77? |
Since we are overriding the lifecycle property (custom LifecycleOwner) and using LifecycleRegistry is provided by I think |
perfect LGTM then! |
What
This PR fixes an Android build failure that occurs when using
[email protected]
(latest) in a React Native 77 projectcompileSdkVersion
from 34 to 35, which includes breaking changes toandroidx.lifecycle
, which caused the build failureChanges
lifecycle
override inCameraSession
fromfun
toval
androidx.lifecycle
2.6.0-beta01
release notes discuss the breaking change fromfun
toval
build.gradle
dependency onandroidx.lifecycle:lifecycle-common:2.8.7
, so that the change remains backwards compatible with RN <772.8.7
is the latest stableandroidx.lifecycle
release2.6.0
is the first release that handles the breaking changeandroidx.lifecycle:lifecycle-common:2.6.0
instead of2.8.7
2.6.0
instead of2.8.7
, I'm happy to update this PRTested on
Related issues