Search code examples
bashandroid-studioaugmented-realityarcore

Can't Install ARCore Emulator for Android Studio


I don't know if I'm allowed to ask this question but I really can't figure out how to use ARCore on Android Emulated Device. According to the official guide I'm supposed to use API 8.1 on pixel/pixel 2 device in order to run any app which uses ARCore. Sadly those emulator don't come with the support for Play Store, and without Play Store I can't Instal ARCore on the device.

The device images that come with built in Play Store can't run ARCore instead. I'm really confused about how am I supposed to test anything for ARCore in this way. I need it to develop an app for a University program and I need to become familiar with Augmented Reality Development but I can't even get started because of this issue.


Solution

  • Updated: May 11, 2023.

    For using ARCore Emulator, at first, you have to create a virtual device with support for AR. I'm running Android Studio Flamingo on macOS Ventura 13.4.

    I created Pixel 6 Pro virtual device:

    enter image description here

    ARCore's targetSdkVersion has been set to Android API level 33.

    enter image description here

    Here are the steps you have to make in order to get a working Emulator:

    • Set up Android Debug Bridge. I set up adb for Mac.

    • Download Google_Play_Services_for_AR_1.37.0_x86_for_emulator.apk from GitHub repository.

    • Run your AVD.

    • Type in Bash Terminal the following command (to be sure that the port is 5554):

        adb devices
      
    • Result:

        // emulator-5554    device
      
    • Go to the folder where Google_Play_Services_for_AR_1.37.0_x86_for_emulator.apk is located. For instance:

        cd ~/Desktop
      
    • To install Emulator, type in Terminal the following line, while the virtual device is running:

        adb install -r Google_Play_Services_for_AR_1.37.0_x86_for_emulator.apk  
      
    • Repeat previous steps for additional AVDs you’d like to use.

    • Delight!

    enter image description here

    P.S.

    Take it into consideration: Android Emulator does not support such ARCore APIs as: Depth API, Geospatial API or Augmented Faces API. That's because Emulator doesn't have corresponding sensors. When any of these features are enabled, the Emulator picture can't render correctly: a screen will be entirely black, although UI elements drawn on top of the Emulator picture still be rendered.