Я могу загрузить последний исходный код 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, и я провел некоторое исследование по этому поводу, но не смог найти никаких похожих проблем.
#!/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
Если у вас есть «android sdk» на вашей машине, тогда ваш «эмулятор» может быть выбран вместо / out / .... dir. Если вы хотите работать со своим «собственным» эмулятором, вы можете переименовать каталог «android sdk». Тогда ваш «эмулятор» будет поднят.
Надеюсь, это поможет вам!
С уважением, Саммох
Я выполнил этот способ
Я изменил файл ./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 \