react-native-community / cli

The React Native Community CLI - command line tools to help you build RN apps
MIT License
2.27k stars 890 forks source link

Android Studio - Required for building and installing your app on Android #2354

Open hcweb opened 2 months ago

hcweb commented 2 months ago

Android Studio - Required for building and installing your app on Android

PS D:\android_workspace\reactstudy> npx react-native doctor Common ✓ Node.js - Required to execute JavaScript code ✓ yarn - Required to install NPM dependencies ✓ Metro - Required for bundling the JavaScript code

Android ✓ Adb - Required to verify if the android device is attached correctly ✓ JDK - Required to compile Java code ✖ Android Studio - Required for building and installing your app on Android ✓ ANDROID_HOME - Environment variable that points to your Android SDK installation ✓ Gradlew - Build tool required for Android builds ✓ Android SDK - Required for building and installing your app on Android 微信截图_20240406192231 微信截图_20240406192257

Errors: 1 Warnings: 0

Usage › Press f to try to fix issues. › Press e to try to fix errors. › Press w to try to fix warnings. › Press Enter to exit.

When I run npx react native doctor and receive an error message Android Studio - Required for building and installing your app on Android, I have already installed Android Studio, Windows 11 operating system, Java 17 version. How do I handle this issue? Thank you

thymikee commented 2 months ago

It’s likely a bug on our end, nothing to worry about, unless you face issues building for Android from the CLI.

Since we miss Windows contributors, we’d appreciate any help resolving this AS resolution bug

Kailash23 commented 2 months ago

Fixed by installing command line tools

image

And adding this line export PATH=$PATH:$ANDROID_HOME/cmdline-tools\latest\bin in

image

Close and reopen the terminal

yarn react-native doctor

matej-podzemny commented 2 months ago

@Kailash23 Why the path has \ ? 🤔

matej-podzemny commented 2 months ago

Same issue here, I have the android studio installed via JetBrain Toolbox and the doctor cannot found it at all, everything else works fine.

I tried to set this, but no luck so far..

export STUDIO_JDK=~/Applications/Android\ Studio.app
export PATH="$STUDIO_JDK:$PATH"
GoldenBilly commented 1 month ago

I have the same issue, but app building and running just fine on my android device, so it's only doctor's issue.

GoldenBilly commented 1 month ago

I think issue is here image because in windows (or at least in windows that support 64 bits) android studio's bin is studio64.exe, not studio.exe

GoldenBilly commented 1 month ago

maybe if we replace it with that:

const prefix = process.arch === 'x64' ? '64' : '';
const androidStudioPath = join(
        getUserAndroidPath(),
        'android-studio',
        'bin',
        `studio${prefix}.exe`
        )

it will be fixed but I'm not sure about that

GoldenBilly commented 1 month ago

or maybe its because of wmic, when I've tried to execute it with wmic datafile where name="C:\\Users\va126\\AppData\\Local\\Android\\android-studio\\bin\\studio64.exe" get Version It gave me this error: Unexpected switch at this level.

But when I've tried this: wmic datafile where "Name='C:\\Users\\va126\\AppData\\Local\\Android\\android-studio\\bin\\studio64.exe'" get version It worked just fine and gave me this version: 2022.3.0.0

So I think it can be also because of wmic.

GoldenBilly commented 1 month ago

first command is similar to command in code image

wy-service commented 1 month ago

Same question

wy-service commented 1 month ago

What should I do

matej-podzemny commented 1 month ago

It is doctor issue, actually in its dependecy envinfo. The issue was raised here, and is already merged: https://github.com/tabrindle/envinfo/pull/252#pullrequestreview-2027803114

SOLUTION: If you still struggle, you can create alias folder to help doctor found it, for mac use this command:

ln -s /Applications/Android\ Studio.app/Contents ~/Applications/Android\ Studio.app/Contents
GoldenBilly commented 1 month ago

What about windows?

GoldenBilly commented 1 month ago

image I've tried my fix, and it worked just fine for me. All what I've changed is:

      const prefix = process.arch === 'x64' ? '64' : '';
      const androidStudioPath = join(
        getUserAndroidPath(),
        'android-studio',
        'bin',
        `studio${prefix}.exe`
        ).replace(/\\/g, '\\\\');
      const {stdout} = await executeCommand(
        `wmic datafile where "Name='${androidStudioPath}'" get version`,
      );

In /packages/cli-doctor/src/tools/healthchecks/androidStudio.ts

GoldenBilly commented 1 month ago

@thymikee

GoldenBilly commented 1 month ago

No one cares...

szymonrybczak commented 6 days ago

@matej-podzemny thank you for raising this fix! I've created bump PR inside CLI https://github.com/react-native-community/cli/pull/2428 🙌

@GoldenBilly this fix makes sense to me! I've a PR with your diff 🙏

GoldenBilly commented 4 days ago

you should probably include in your fix also this:

const {stdout} = await executeCommand(
        `wmic datafile where "Name='${androidStudioPath}'" get version`,
      );

because I dont know why, but at least my windows had a problem with that (I think because of "-" in android studio path)

szymonrybczak commented 4 days ago

@GoldenBilly I'm fine with this change, do you mind submitting separate PR? :)

GoldenBilly commented 4 days ago

okay, but later, because I dont have PC with me right now