Запуск эмулятора после сборки Android из исходного кода

Я могу загрузить последний исходный код Android в 32-разрядную виртуальную машину Ubuntu (хост: 64-разрядная версия Windows 7). Сборка завершается без ошибок.

Затем я попытался выполнить эти инструкции , где упоминается, что я должен запустить эмулятор в корне моего исходного кода. Однако, когда я попробовал это, я получил сообщение об ошибке, что эта команда не найдена.

Я зашел в папку out / host / linux-x86 / bin и обнаружил, что есть пара файлов для эмулятора * :

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

Когда я набрал здесь emulator и emulator-x86 , он также не Работа. Вот ошибка, которую я получаю:

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 '@' or '-avd '
to start a given virtual device (see -help-avd for details).

Otherwise, follow the instructions in -help-disk-images to start the emulator

Итак, когда я запускаю ./ emulator-x86 -help-disk-images , я вижу следующее:

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.

Я построил это сам, поэтому я бы думаю, что ANDROID_PRODUCT_OUT установлен в моих переменных среды, но я этого не вижу. Поэтому я думаю, что мне нужно запустить какой-нибудь другой сценарий оболочки, чтобы получить этот набор.

Я просмотрел файлы img , я увидел пару в местоположении out / target / product / generic :

  • ramdisk.img
  • system.img
  • данные пользователя.img

Может ли кто-нибудь пролить свет на это и помочь мне решить, что мне делать дальше? Я новичок в Android, и я провел некоторое исследование по этому поводу, но не смог найти никаких похожих проблем.

25
задан Paul Lammertsma 7 November 2012 в 09:17
поделиться

3 ответа

#!/usr/bin/env bash

ANDROID_BUILD_OUT=/path/to/android/build/output/
ANDROID_SDK_LINUX=/path/to/android/sdk
ANDROID_BUILD=${ANDROID_BUILD_OUT}/android/target/product/generic

${ANDROID_SDK_LINUX}/tools/emulator \
    -sysdir ${ANDROID_BUILD} \
    -system ${ANDROID_BUILD}/system.img \
    -ramdisk ${ANDROID_BUILD}/ramdisk.img \
    -data ${ANDROID_BUILD}/userdata.img \
    -kernel ${ANDROID_SDK_LINUX}/system-images/android-18/armeabi-v7a/kernel-qemu \
    -skindir ${ANDROID_SDK_LINUX}/platforms/android-18/skins \
    -skin WVGA800 \
    -scale 0.7 \
    -memory 512 \
    -partition-size 1024
3
ответ дан 28 November 2019 в 18:16
поделиться

Если у вас есть «android sdk» на вашей машине, тогда ваш «эмулятор» может быть выбран вместо / out / .... dir. Если вы хотите работать со своим «собственным» эмулятором, вы можете переименовать каталог «android sdk». Тогда ваш «эмулятор» будет поднят.

Надеюсь, это поможет вам!

С уважением, Саммох

0
ответ дан 28 November 2019 в 18:16
поделиться

Я выполнил этот способ

Я изменил файл ./build/envsetup.sh, я изменил только set_stuff_for_environment

function set_stuff_for_environment()
{
    setpaths
    set_sequence_number

    export ANDROID_BUILD_TOP=$(gettop)
    # With this environment variable new GCC can apply colors to warnings/errors
    export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
    export ASAN_OPTIONS=detect_leaks=0

    export ANDROID_PRODUCT_OUT=/var/www/android/out/target/product/generic_x86_64
    echo $ANDROID_PRODUCT_OUT
}

В корне проекта я создал файл с именем start.sh

#!/usr/bin/env bash

ANDROID_BUILD_OUT=/var/www/android/out
ANDROID_SDK_LINUX=/opt/android-studio/sdk
ANDROID_BUILD=${ANDROID_BUILD_OUT}/target/product/generic_x86_64

sudo chmod -R 777 /dev/kvm

source build/envsetup.sh

set_stuff_for_environment

./prebuilts/android-emulator/linux-x86_64/emulator \
    -debug-init -logcat '*:v' -verbose \
    -sysdir ${ANDROID_BUILD} \
    -system ${ANDROID_BUILD}/system.img \
    -ramdisk ${ANDROID_BUILD}/ramdisk.img \
    -skindir ${ANDROID_SDK_LINUX}/platforms/android-28/skins \
    -skin WVGA800 \
    -partition-size 2000
    -scale 0.7 \
    -memory 2000 \
    -data ${ANDROID_BUILD}/userdata.img \
0
ответ дан 28 November 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: