Fix emulator launching bug
Summary: I was getting the following error when trying to launch an emulator: `PANIC: Missing emulator engine program for 'x86' CPU.` It seems like emulator/emulator is more reliable than tools/emulator: https://stackoverflow.com/questions/26483370/android-emulator-error-message-panic-missing-emulator-engine-program-for-x86 So put them both on the path in that order. Reviewed By: passy Differential Revision: D13040325 fbshipit-source-id: 11e8b24b2a99e02955128d5fb7c17764b98388fa
This commit is contained in:
committed by
Facebook Github Bot
parent
57235131fc
commit
d9a9439dfa
@@ -21,14 +21,12 @@ type Props = {
|
|||||||
|
|
||||||
class DevicesButton extends Component<Props> {
|
class DevicesButton extends Component<Props> {
|
||||||
launchEmulator = (name: string) => {
|
launchEmulator = (name: string) => {
|
||||||
const child = spawn(
|
const child = spawn('emulator', [`@${name}`], {
|
||||||
`${process.env.ANDROID_HOME || ''}/tools/emulator`,
|
|
||||||
[`@${name}`],
|
|
||||||
{
|
|
||||||
detached: true,
|
detached: true,
|
||||||
stdio: 'ignore',
|
});
|
||||||
},
|
child.stderr.on('data', data => {
|
||||||
);
|
console.error(`Android emulator error: ${data}`);
|
||||||
|
});
|
||||||
child.on('error', console.error);
|
child.on('error', console.error);
|
||||||
this.props.preferDevice(name);
|
this.props.preferDevice(name);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export default (store: Store, logger: Logger) => {
|
|||||||
const watchAndroidDevices = () => {
|
const watchAndroidDevices = () => {
|
||||||
// get emulators
|
// get emulators
|
||||||
child_process.exec(
|
child_process.exec(
|
||||||
'$ANDROID_HOME/tools/emulator -list-avds',
|
'emulator -list-avds',
|
||||||
(error: ?Error, data: ?string) => {
|
(error: ?Error, data: ?string) => {
|
||||||
if (error != null || data == null) {
|
if (error != null || data == null) {
|
||||||
console.error(error || 'Failed to list AVDs');
|
console.error(error || 'Failed to list AVDs');
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ if (!process.env.ANDROID_HOME) {
|
|||||||
process.env.ANDROID_HOME = '/opt/android_sdk';
|
process.env.ANDROID_HOME = '/opt/android_sdk';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// emulator/emulator is more reliable than tools/emulator, so prefer it if
|
||||||
|
// it exists
|
||||||
|
process.env.PATH = `${process.env.ANDROID_HOME}/emulator:${
|
||||||
|
process.env.ANDROID_HOME
|
||||||
|
}/tools:${process.env.PATH}`;
|
||||||
|
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
// If we are running on macOS and the app is called Flipper, we add a comment
|
// If we are running on macOS and the app is called Flipper, we add a comment
|
||||||
// with the old name, to make it findable via Spotlight using its old name.
|
// with the old name, to make it findable via Spotlight using its old name.
|
||||||
|
|||||||
Reference in New Issue
Block a user