Reputation: 5588
I am trying to run my project on the android simulator. When I run react-native run-android
I am getting the following:
FAILURE: Build failed with an exception.
* What went wrong: Task 'installDebug' not found in root project 'android'.
* Try: Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
If I run ./gradlew tasks
I get:
Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]
Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'android'.
components - Displays the components produced by root project 'android'. [incubating]
dependencies - Displays all dependencies declared in root project 'android'.
dependencyInsight - Displays the insight into a specific dependency in root project 'android'.
help - Displays a help message.
model - Displays the configuration model of root project 'android'. [incubating]
projects - Displays the sub-projects of root project 'android'.
properties - Displays the properties of root project 'android'.
tasks - Displays the tasks runnable from root project 'android'.
Any idea why I don't have a installDebug task in my project? How do I get it back?
Upvotes: 34
Views: 67082
Reputation: 1063
installDebug is the default command. If you use product flavours (maybe in other cases too?). The defaults don't exist and only the specific tasks exist, installMyCoolAppDebug. To use these with React native. you should add the mode to the build command.
Note: --variant has been deprecated. mode should be used instead:
react-native run-android --mode=[productFlavorName][Debug/Release] --appId=com.MyCoolApp
react-native run-android --mode=MyCoolAppDebug --appId=com.MyCoolApp
Upvotes: 1
Reputation: 89
In my case it was because I was missing a path to the Android Debug Bridge (add) file in my paths (macOS). To resolve it, I followed the following steps:
nano ~/.zshrc
export PATH="$PATH:/Users/[your-name]/Desktop/platform-tools"
Control+O
, then press Enter
to confirm. After that, press Control+X
to exit.adb
. If you do not get an error then restart your VS Code terminal and try to run your React Native app again.Upvotes: 0
Reputation: 1011
The error comes when the project is constructed on flavors
i was writing npx react-native run-android -variant=devDebug
which was causing an issue but as soon as i write npx react-native run-android --variant devDebug
it is working fine for me.
working on windows laptop
Upvotes: 2
Reputation: 669
Open Android folder in the Android studio then it will download all required files automatically
Upvotes: 0
Reputation: 91
The error comes when the project is constructed on flavors.
Flavors is the solution when you need to build the same app but for different clients, like one for Facebook and one for Microsoft, and you have to do some minor adjustments to your code. More about flavors here: https://blog.logicwind.com/adding-multiple-target/
So, to solve this, for the Android system, go to android/app/build.gradle
Now find the next part:
android {
...
flavorDimensions "default"
productFlavors {
dev {
minSdkVersion rootProject.ext.minSdkVersion
applicationId 'com.myproject.dev'
targetSdkVersion rootProject.ext.targetSdkVersion
resValue "string", "build_config_package", "com.myapp"
}
prod {
minSdkVersion rootProject.ext.minSdkVersion
applicationId 'com.myproject'
targetSdkVersion rootProject.ext.targetSdkVersion
resValue "string", "build_config_package", "com.myapp"
}
facebook {
minSdkVersion rootProject.ext.minSdkVersion
applicationId 'com.myproject.facebook'
targetSdkVersion rootProject.ext.targetSdkVersion
resValue "string", "build_config_package", "com.myapp"
}
}
defaultConfig {
applicationId "com.myproject"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
...
}
As you can see in the productFlavors tag we have 3 different builds (dev, prod and facebook). Now, each of those flavors have two different runtime modes (or builds) (Debug and Release). So, as others suggested, when you build your app, you will have to specify the flavor you want to build.
The command you will need to use is next:
npx react-native run-android --variant <productFlavour><BuildType>
Looking up at the build.gradle, for this project we have the next possible variants:
devDebug and devRelease, prodDebug and prodRelease, facebookDebug and facebookRelease
Depending on your configuration, just adjust the productFlavor and you are good to go
Upvotes: 4
Reputation: 143
You must run gradlew
in the android directory.
Here’s an example. Run the following command and it will produce the same output the OP mentioned.
./android/gradlew tasks
Then try:
cd android
./gradlew tasks
The output is wildly different. I don't know why this is the case.
Upvotes: 0
Reputation: 9630
Following steps worked for me:
Right click the "android" folder and click "Open in Integrated Terminal"
Run "gradlew tasks" command.
Scroll down to "Install tasks" section:
The list will contain the variants which you will pass against the run-android command. Taking for instance the "installExperimentalFossDebug" task, the variant will be "ExperimentalFossDebug".
Next step is to run the "run android" command at the root of the project (not in the android folder) with that variant.
npx react-native run-android --variant ExperimentalFossDebug
Following the above steps you will be able to run the project against emulator:
Upvotes: 3
Reputation: 1
I got the same error. I just opened the VS Code and inside the android folder, I created local.properties file and then added sdk.dir=/Users/apple/Library/Android/sdk
(Don't copy mine you can find your sdk path in android studio). Later, I ran npx react-native run-android
and this solved my problem.
Upvotes: 0
Reputation: 6693
cd android
./gradlew clean
cd..
react-native run-android --variant=DevDebug
This fixed for me
Upvotes: 6
Reputation: 965
Open you React Native project's android folder in Android Studio, for me it automatically generated
local.properties
which contains the sdk.dir
Then go back to the root of your React Native project and run
yarn android
Upvotes: 0
Reputation:
The following command solved the problem for me on Linux. You should replace ~/Android/Sdk
with your own Android SDK path.
export ANDROID_SDK_ROOT=~/Android/Sdk
Upvotes: 0
Reputation: 5172
I had the same issue with react native. Finally able to solve the issue by following the exact environment set guideline in the rest-native documentation. Go through the documentation in the URL below. Good luck. enter link description here
Upvotes: 1
Reputation: 179
The solution is simple-
chmod +x android/gradlew.bat
And then finally run-
npx react-native start
npx react-native run-android
Upvotes: 0
Reputation: 114
Open the project with android studio, it will automatically fix the issues
Upvotes: 1
Reputation: 79
I have solved this problem You just need to Create file in Android Folder
Go android folder
Create file local.properties
then just add this code in local.properties file:-
If you are using MacBook then sdk.dir=/Users/USERNAME/Library/android/sdk
if you are using Windows then sdk.dir=C:\Users\USERNAME\AppData\Local\Android\sdk
if you are using Linux then sdk.dir = /home/USERNAME/Android/sdk
if you want to know what is your system USERNAME then just use command for Mac whoami
and then just rerun command react-native run-android
Thanks :)
Upvotes: 7
Reputation: 1008
i had the same issue in fresh react-native project (react-native init projectname
) after running react-native start
then react-native run-android
in VS code. It gave this error
Task 'installDebug' not found in project ':app'.
It is in RN "0.62.1"
Solution:- i open Android Studio, then clean and rebuild.
I am not sure would it work after clean and rebuild.
i also did and gave the sdk path in root project
export ANDROID_HOME=/home/mycomputer/Android/Sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Then it works.
My npm version 6.7.0 My Node version v11.10.1 react-native-cli: 2.0.1 react-native: 0.62.1
Upvotes: 8
Reputation: 614
I was also having this issue with one more issue
Deprecated Gradle were used in this build, making it incompatible with Gradle 7.0.
in Android build as the screenshot attached.
On opening the android folder with android studio and letting it build by android studio, the problem is getting fixed. After that on running
npx react-native run-android
, it is working fine.
Upvotes: 7
Reputation: 680
I know this is an old question, but just in case : had the same trouble today with a react-native project, juste double check that your ANDROID_HOME environment variable is set to your local SDK folder.
You may try "react-native doctor" to see what's happening; but it make sense : without ANDROID_HOME, react-native just doesn't know what to build, so you can't run anything.
Upvotes: 2
Reputation: 41957
I am pasting the code to show some of the available options for run-android
var _default = {
name: 'run-android',
description: 'builds your app and starts it on a connected Android emulator or device',
func: runAndroid,
options: [{
name: '--root [string]',
description: 'Override the root directory for the android build (which contains the android directory)',
default: ''
}, {
name: '--variant [string]',
description: "Specify your app's build variant",
default: 'debug'
}, {
name: '--appFolder [string]',
description: 'Specify a different application folder name for the android source. If not, we assume is "app"',
default: 'app'
}, {
name: '--appId [string]',
description: 'Specify an applicationId to launch after build.',
default: ''
}, {
name: '--appIdSuffix [string]',
description: 'Specify an applicationIdSuffix to launch after build.',
default: ''
}, {
name: '--main-activity [string]',
description: 'Name of the activity to start',
default: 'MainActivity'
}, {
name: '--deviceId [string]',
description: 'builds your app and starts it on a specific device/simulator with the ' + 'given device id (listed by running "adb devices" on the command line).'
}, {
name: '--no-packager',
description: 'Do not launch packager while building'
}, {
name: '--port [number]',
default: process.env.RCT_METRO_PORT || 8081,
parse: val => Number(val)
}, {
name: '--terminal [string]',
description: 'Launches the Metro Bundler in a new window using the specified terminal path.',
default: (0, _cliTools().getDefaultUserTerminal)()
}, {
name: '--tasks [list]',
description: 'Run custom Gradle tasks. By default it\'s "installDebug"',
parse: val => val.split(',')
}, {
name: '--no-jetifier',
description: 'Do not run "jetifier" – the AndroidX transition tool. By default it runs before Gradle to ease working with libraries that don\'t support AndroidX yet. See more at: https://www.npmjs.com/package/jetifier.',
default: false
}]
};
I hope the answer is helpful
Upvotes: 0
Reputation: 201
For Debug test
react-native run-android --variant devKernelDebug
The reasons is because in the file android/build.gradle we have this
productFlavors {
devKernel {
dimension 'remoteKernel'
}
prodKernel {
dimension 'remoteKernel'
}
}
Upvotes: 17
Reputation: 69
Below command solved my issue:
Run--> gradlew :app:installDebug inside ./android folder
After installation run gradlew tasks to list down the tasks available. There you can check
installDebug - Installs the Debug build.
installDebugAndroidTest - Installs the android (on device) tests for the Debug build.
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build.
uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.
uninstallRelease - Uninstalls the Release build.
Upvotes: 1
Reputation: 337
just change this,go to this folder and file,
node_modules/react-native/local-cli/runAndroid/runAndroid.js
replace installdebug
with
} else {
gradleArgs.push('installDevDebug');
}
Upvotes: 1
Reputation: 347
react-native run-android --variant [productFlavorName][debug/release]
e.g. react-native run-android --variant Huaweidebug
Upvotes: 23