Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running emulator after building Android from source

I am able to pull down the latest android source code into a Ubuntu virtual machine 32-bit (Host: Windows 7 64-bit). The build completes without any errors.

Then I tried to follow these instructions, where it mentions that I should run the emulator on the root of my source code. However, when I tried that, I get an error stating that this command is not found.

So I went to the folder out/host/linux-x86/bin and I found out that there are couple files for emulator*:

  • emulator
  • emulator-arm
  • emulator_renderer
  • emulator-ui
  • emulator-x86

When I typed the emulator and emulator-x86 here, it also doesn't work. Here is the error I'm getting:

xxxx/out/host/linux-x86/bin$ ./emulator-x86 emulator: ERROR: You did not specify a virtual device name, and the system directory could not be found.  If you are an Android SDK user, please use '@<name>' or '-avd <name>' to start a given virtual device (see -help-avd for details).  Otherwise, follow the instructions in -help-disk-images to start the emulator 

So when I run ./emulator-x86 -help-disk-images, I see the following:

If you are building from the Android build system, you should have ANDROID_PRODUCT_OUT defined in your environment, and the emulator shall be able to pick-up the right image files automatically. See -help-build-images for more details. 

I built this myself, so I would think that ANDROID_PRODUCT_OUT is set in my environment variables, but I don't see it. So I think that I should run some other shell script to get that set.

I looked at the img files, I saw couple at the location out/target/product/generic:

  • ramdisk.img
  • system.img
  • userdata.img

Could anyone shed some light on this and assist me on what I should do next? I am new to Android and I did some research on this but I couldn't find any similar issues.

like image 880
windfly2006 Avatar asked Jan 26 '12 17:01

windfly2006


People also ask

How do I run an emulator from ADB?

Install your app using adb. Run and test your app on the emulator. While the emulator is running, you can also use the Emulator Console to issue commands as needed. The virtual device preserves the app and its state data across restarts, in a user-data disk partition ( userdata-qemu.

How do I manually run an emulator?

To create an Android emulator on your system, follow these steps: Start the Android SDK Manager (select Start | All Programs | Embarcadero RAD Studio | Android Tools). In the Android SDK Manager, select Tools | Manage AVDs. In the Android Virtual Device Manager, click the New button to create a new virtual device.


1 Answers

I do not know for which product you do your build but to run emulator you can use the following command:

out/host/linux-x86/bin/emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel prebuilt/android-arm/kernel/kernel-qemu -sdcard sdcard.img -skindir sdk/emulator/skins -skin WVGA800 -scale 0.7 -memory 512 -partition-size 1024

Just copy it into .sh file into the root of your Android source folder and run this file. Or you can just run it but you should chdir to your Android source folder root at first.

And do not forget to create an sdcard image in the root folder with command mksdcard.

like image 89
Yury Avatar answered Sep 28 '22 03:09

Yury