react-native-async-storage/async-storage

[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.

stcdh opened this issue · 43 comments

stcdh commented

What happened?

Just to be clear, I have reviewed every search and article I can find on this topic. I am working on just the Android app to get some underlying issues updated in Android Studio. This is just a relatively simple flashcard-type app.

I have cleaned, rebuilt, and run through every fix I can find.

I'm getting the error:
`Error: [@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.

                                                                                                To fix this issue try these steps:
                                                                                                
                                                                                                  • Rebuild and restart the app.
                                                                                                
                                                                                                  • Run the packager with `--reset-cache` flag.
                                                                                                
                                                                                                  • If you are using CocoaPods on iOS, run `pod install` in the `ios` directory and then rebuild and re-run the app.
                                                                                                
                                                                                                  • If this happens while testing with Jest, check out docs how to integrate AsyncStorage with it: https://react-native-async-storage.github.io/async-storage/docs/advanced/jest
                                                                                                
                                                                                                If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-async-storage/async-storage/issues`

I followed the above to the letter. I have deleted and added the app back both on the emulator and a physical device. I also created the .apk and ran it on my phone just to make sure it wasn't a jest issue.

I'll include the relevant files & commands below, but please let me know if you need more information somewhere:

Version

1.18.1

What platforms are you seeing this issue on?

  • Android
  • iOS
  • macOS
  • Windows
  • web

System Information

System:
    OS: Windows 10 10.0.22621
    CPU: (12) x64 12th Gen Intel(R) Core(TM) i7-1265U
    Memory: 2.74 GB / 15.64 GB
  Binaries:
    Node: 18.16.0 - C:\Program Files\nodejs\node.EXE
    Yarn: Not Found
    npm: 9.6.6 - ~\AppData\Roaming\npm\npm.CMD
    Watchman: Not Found
  SDKs:
    Android SDK: Not Found
    Windows SDK: Not Found
  IDEs:
    Android Studio: AI-222.4459.24.2221.9971841
    Visual Studio: Not Found
  Languages:
    Java: 11.0.19 - C:\Program Files\Amazon Corretto\jdk11.0.19_7\bin\javac.EXE
  npmPackages:
    @react-native-community/cli: Not Found
    react: Not Found
    react-native: Not Found
    react-native-windows: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to Reproduce

Firstly, I installed the package with NPM:
npm install @react-native-async-storage/async-storage

package.json:
{ "name": "Name", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" }, "dependencies": { "@react-native-async-storage/async-storage": "^1.18.1", "deprecated-react-native-prop-types": "^4.1.0", "native-base": "^2.13.12", "react": "18.2.0", "react-native": "0.71.8", "react-native-firebase": "^5.6.0", "react-native-swiper": "^1.6.0" }, "devDependencies": { "babel-jest": "29.5.0", "jest": "29.5.0", "jetifier": "^2.0.0", "metro-react-native-babel-preset": "0.76.5", "react-test-renderer": "18.2.0" }, "jest": { "preset": "react-native", "setupFiles": [ "./jest/jestSetupFile.js" ] } }

^ Just one note on the above, I did try upgrading native-base as well.

Deck.js
import React from 'react' import { Platform, Image, Dimensions, TouchableOpacity, View, Animated, StyleSheet } from 'react-native' import { Card, CardItem, Icon, Container, Header, Body, Footer, Left, Right, Content, Title, List, ListItem, Text, Button } from 'native-base' import Swiper from 'react-native-swiper' import firebase from 'react-native-firebase' import AsyncStorage from '@react-native-async-storage/async-storage';

I can provide more code if needed, but when I comment out the above import, the app functions. If I include the import from Native base, I get the removal notification, and if I simply comment out the AsyncStorage, the app otherwise functions with the AsyncStorage functionality.

I ran two different codes in my jestSetupFile, the suggested one here: https://react-native-async-storage.github.io/async-storage/docs/advanced/jest and the current one:
jest.mock("@react-native-async-storage/async-storage", () => ({ setItem: jest.fn(() => Promise.resolve()), getItem: jest.fn(() => Promise.resolve()), }));

I also went the mocks_ directory route.

Are there any other suggestions?

I am Facing the same issue

Hey,
Did you try running it on fresh project? Most of the time, the issue is related to project-specific setup. I just ran RN 71.8 with Async Storage with no issue

@krizzu Thanx for your time,Actually i was not clear enough,it is working in project but fails in below test case

CODE ::

import 'react-native';
import React from 'react';
import App from '../App';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';
// import { render, screen } from '@testing-library/react-native';
// import debugDeep from '@testing-library/react-native/build/helpers/debugDeep';
import PharmaLynkProductList from '../src/screens/PharmaLynkProductList';
import { store } from '../src/redux';
import { Provider } from 'react-redux';
import { render } from '@testing-library/react-native';
// it('renders correctly', () => {
// renderer.create();
// });

// test("Testing first time",() => {
// expect(true).toBe(false);
// })

test("Welcome Screen from App.js", () => {

function Wrapper({ children }) {
  return <Provider store={store}>{children}</Provider>
}

render(<PharmaLynkProductList/>,{ wrapper : Wrapper });

});

RESULT ::

FAIL tests/App-test.tsx
● Test suite failed to run

[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.

To fix this issue try these steps:

  • Rebuild and restart the app.

  • Run the packager with `--reset-cache` flag.

  • If you are using CocoaPods on iOS, run `pod install` in the `ios` directory and then rebuild and re-run the app.

  • If this happens while testing with Jest, check out docs how to integrate AsyncStorage with it: https://react-native-async-storage.github.io/async-storage/docs/advanced/jest

If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-async-storage/async-storage/issues

  4 | import {createStore, combineReducers, applyMiddleware} from 'redux';
  5 | import productsReducers from '../redux/reducers/Product';
> 6 | import AsyncStorage from '@react-native-async-storage/async-storage';
    | ^
  7 | import {persistStore, persistReducer} from 'redux-persist';
  8 | import {PersistGate} from 'redux-persist/integration/react';
  9 |

  at Object.<anonymous> (node_modules/@react-native-async-storage/async-storage/lib/commonjs/AsyncStorage.native.ts:23:9)
  at Object.require (node_modules/@react-native-async-storage/async-storage/lib/commonjs/index.ts:1:1)
  at Object.require (src/redux/index.js:6:1)
  at Object.require (__tests__/App-test.tsx:14:1)

Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 2.632 s

Ah, that changes the issue completely 😄
Try this:
https://react-native-async-storage.github.io/async-storage/docs/advanced/jest

@krizzu Already did bro but no it doesn't work 🥲

@krizzu Already did bro but no it doesn't work 🥲

And i have tried with both ways

"dependencies": {
"@gorhom/bottom-sheet": "^4.4.6",
"@likashefqet/react-native-image-zoom": "^1.3.0",
"@notifee/react-native": "^7.4.0",
"@react-native-async-storage/async-storage": "^1.15.17",
"@react-native-firebase/app": "^12.3.0",
"@react-native-firebase/messaging": "^12.3.0",
"@react-native-masked-view/masked-view": "^0.2.6",
"@react-navigation/drawer": "^6.5.8",
"@react-navigation/native": "^6.0.6",
"@react-navigation/native-stack": "^6.9.12",
"@react-navigation/stack": "^6.0.11",
"@stripe/stripe-react-native": "^0.23.1",
"axios": "^1.3.3",
"immutability-helper": "^3.1.1",
"moment": "^2.29.1",
"react": "18.2.0",
"react-native": "0.71.0",
"react-native-blob-util": "^0.17.3",
"react-native-bootsplash": "^4.4.1",
"react-native-charts-wrapper": "^0.5.11",
"react-native-gesture-handler": "^2.4.2",
"react-native-image-pan-zoom": "^2.1.12",
"react-native-keyboard-aware-scroll-view": "^0.9.5",
"react-native-maps": "^1.4.0",
"react-native-otp-textinput": "^0.0.9",
"react-native-otp-verify": "^1.0.5",
"react-native-pager-view": "^5.4.25",
"react-native-pdf": "^6.6.2",
"react-native-reanimated": "^2.8.0",
"react-native-reanimated-carousel": "^3.3.2",
"react-native-rename": "^3.2.7",
"react-native-responsive-screen": "^1.4.2",
"react-native-safe-area-context": "^4.2.5",
"react-native-screens": "^3.13.1",
"react-native-simple-toast": "^1.1.3",
"react-native-splash-screen": "^3.3.0",
"react-native-tab-view": "^3.1.1",
"react-native-uuid": "^2.0.1",
"react-native-webview": "^11.16.0",
"react-redux": "^7.2.6",
"redux": "^4.1.2",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.4.1"
},

I change the import from import AsyncStorage from '@react-native-async-storage/async-storage' TO
import AsyncStorage from '@react-native-async-storage/async-storage/jest/async-storage-mock'

😀Working Fine Now Thanx ✌🏻

Great!

I realized the OP did not response yet, so reopening

Same issue happened with me, been creating fresh new project with typescript since last week and this issue happens right the moment i installed this package

My environment, maybe we can see some pattern here:

"react": "18.2.0",
"react-native": "0.71.8",
"@react-native-async-storage/async-storage": i actually first tried 1.18.1 and the problem persist, tried uninstalled it using npm uninstall then installed v1.16.0, problem still exist

Last time it worked was in my last old RN project below, without typescript

"react": "17.0.1",
"react-native": "0.64.2",
"@react-native-async-storage/async-storage": "^1.15.5",
stcdh commented

Krysztof, thanks. I will try a new project. I had cleaned out node_modules multiple times, to no avail, but I had not tried a completely new project. I will report back later today on the effort. Thanks,

On Wed, May 31, 2023 at 8:40 AM Krzysztof Borowy @.> wrote: I realized the OP did not response yet, so reopening — Reply to this email directly, view it on GitHub <#967 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOQ5AMGLQGSAE667A5RTNHLXI432FANCNFSM6AAAAAAYR6A3AQ . You are receiving this because you authored the thread.Message ID: @. com>
-- Denver Hunter Small Town Co., LLC Websites & data experiences that sell. P: 803.939.6694

please let me know how it went by initiating fresh new project. because i did it several days ago and no avail

idk if i init fresh new one and straight up installs RNC/AsyncStorage v1.15 instead of fresh install with 1.18 and downgrading (which didn't work for me)

win 11 Ract native 0.67.5 node 14
image

Hello,
I have the same error [@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.
It's working on Android but not on IOS, my app was working before, I don't understand

"@react-native-async-storage/async-storage": "^1.17.11",

fix : download one version older from the latest one it will work fine without any errors

This issue has been marked as stale due to inactivity. Please respond or otherwise resolve the issue within 7 days or it will be closed.

Same issue here tried multiple versions can't make it work.

Im running my app on an expo development build..

@TahirPK007 Which version are you using?

I face the same problem with Andriod, but it works with iOS.
My package.json info below:

"@react-native-async-storage/async-storage": "^1.19.3",
"react": "18.2.0",
"react-native": "0.72.5",

I'm also facing the same issue.

still facing the same issue on the expo. anyone have any idea

Same. problem here with expo. I am using amplify and getting the error in Jest testing. None of the suggested solution works.

This issue has been marked as stale due to inactivity. Please respond or otherwise resolve the issue within 7 days or it will be closed.

Joining the club.

Same issue here..

try that #994 (comment)

kill (remove on backend service) app installed on the simulator before and reinstall the app, and then it works!

Please try rebuilding the application once you install the package and set it up in your repository.

It should work out of the box, with the new build.

quit react-native in terminal,then restart with "npm run start --reset-cache".It works for me!

quit react-native in terminal,then restart with "npm run start --reset-cache".It works for me!

you could just stop in quit react-native

try that #994 (comment)

kill (remove on backend service) app installed on the simulator before and reinstall the app, and then it works!

works for me. Thansk!

This issue has been marked as stale due to inactivity. Please respond or otherwise resolve the issue within 7 days or it will be closed.

I'm having this issue now.

I'm having this issue now.

Ugh! Here was the fix.

I'm having this issue now.

Ugh! Here was the fix.

Same here. This was finally the fix. Using expo, deleting the dev build on my device and re-running expo start

Hey. @jessemcintire. I Installed @react-native-async-storage/async-storage. Then uninstalled app from simulator. installed it again.
Then again did expo start still see.

Error: [@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.

Do i have to again create eas build development build?

1 / uninstall the app from your phone or simulator
2/ created a new build
3/ install the app

1 / uninstall the app from your phone or simulator 2/ created a new build 3/ install the app

I've tried several times but it still doesn't work! Any suggestions?