I'm trying to build my react native app but when I run ./gradlew bundleDebug or ./gradlew bundleRelease it says BUILD SUCCESSFUL but there is no APK in build/outputs/apk directory.
How can I build a universal APK from my react native app?
You have to clean the gradle first then run the command ./gradlew bundleRelease
otherwise use following command into your project directory.
1. cd android && ./gradlew clean
2. cd ..
3. npx react-native run-android --variant=release
I am new to react-native and I use expo. If you are new to app react-native development, try installing expo and letting them handle the build process.
How to install expo onto existing react-native project: https://jablog.online/blog/2020/01/22/existing-react-native-project-on-expo/
The problem solved by using ./gradlew assembleeRelease command.
Just try to generate APK from Android Studio. It is the best and the most stable way. You can find lots of articles about generating APK from Android Studio.
If you still want to generate APK from command line here is the command to run:
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && rm -rf android/app/src/main/res/drawable-* && cd android && ./gradlew assembleRelease
If you need a more detailed article:
https://www.instamobile.io/android-development/generate-react-native-release-build-android/
Related
I'm struggling with this issue where I can't generate a APK locally with my coded changes in a React Native 0.67.2 project.
I already did run some of those commands down below to generate a new updated bundle:
npx react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res
But everytime after running npx react-native run-android --variant=release, it installs an older version of my project.
If I just run it as default npx react-native run-android, which is as debug it works perfectly and install the updated version on my emulator.
It doesn't makes any sense to me, what am I doing wrong?
Try using this command to generate a new APK :
cd android && ./gradlew clean assembleRelease -PMYAPP_UPLOAD_STORE_PASSWORD=foo -PMYAPP_UPLOAD_KEY_PASSWORD=foo
And you'll find it in
yourProject/android/app/build/outputs/apk/debug/app-debug.apk
I am trying to release apk in react native but getting this error
task :app:mergereleaseresources failed
If I delete the drawable and raw folder and build again then I am getting this error
Task :app:processReleaseResources
Process to generate apk in react native
Create keystore
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
cd android
./gradlew assembleRelease
Plz help me
Navigate to the android folder and run
npx jetify
this will solve your mergereleasesource issue.
after that, if you are facing a duplicate resource issue then run the following command
rm -rf ./android/app/src/main/res/drawable-*
rm -rf ./android/app/src/main/res/raw
I used the official documentation of React Native to build apk file. All other procedures worked fine but creating aab file is not working for me. I used the following command
cd android && ./gradlew bundleRelease
But it's not working on Windows. It is just giving me error of ". is not recognized"
to create main js Bundle
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
and then run cd android && ./gradlew assembleRelease
Below command work perfectly in mac
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle && cd ./android && ./gradlew app:assembleRelease
cd android/
./gradlew bundleRelease
On Windows, you can use the gradlew executable made for Bash, unless you install WSL for Windows (which is highly recommended for many other reasons, so then your ./gradlew would just work in the WSL shell). Without WSL, you need to use the gradlew.bat file instead, which should be in your android folder in your repo as its included in the react native starter files.
From then on, every command you see written with ./gradlew should be replaced with it, e.g. gradlew.bat assembleRelease. Be sure to be in the 'android' folder though.
Can't generate signed apk that can be installed directly on device without connecting to the server.The command given in new documentation is
cd android
$ ./gradlew bundleRelease
which will generate .aab file and app-debug.apk only.
can I use the below command to generate apk in react native 0.60-RC? Can't find that command in their updated document.
$ ./gradlew assembleRelease
.aab is a bundle file which can replace release .apk, anw, you can open Android Studio, build a release APK follow Build/Generate Signed Bundle(s)/ APK and tick on APK checkbox
UPDATE
.aab cannot install directly, but if you want to install the app on a real device without a server (node), you can using below way
Step 1:
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
Step 2:
cd android
$ ./gradlew assembleDebug
now the debug APK file includes the bundle server, so you can install it on your real device independently.
I'm trying to build the apk for this project https://github.com/react-native-material-design/demo-app, and when I run ./gradlew assembleRelease
from the android directory I get Cannot evaluate module react-native-android-statusbar : Configuration with name 'default' not found.
here is my settings.gradle file https://pastebin.com/YMiKkuw1
The output when running it with --stack-trace: https://pastebin.com/8UGs2zvT
Edit
tried npm uninstall react-native-android-statusbar --save
and then re-install using npm install react-native-android-statusbar --save
the error changed, but I'm not experienced enough to solve it, here is the output of ./gradlew assembleDebug --stacktrace :https://pastebin.com/AsEG6fcB
Try to remove react-native-android-statusbar using npm uninstall react-native-android-statusbar --save
After try re-install that using npm install react-native-android-statusbar --save
Link library using npm link react-native-android-statusbar
Genarate unsigned apk using this script
mkdir -p android/app/src/main/assets && rm -rf android/app/build && react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew assembleDebug
I think the problem with project directory mentioned in status bar library is wrong.
project(':react-native-android-statusbar').projectDir = new File(settingsDir, '../node_modules/react-native-android-statusbar')
It should be rootProject.projectDir instead of settingsDir
project(':react-native-android-statusbar').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-android-statusbar')