Создайте приложение в систему Android с помощью Android.bp вместо Android.mk

Мне нужна помощь со скриптом Android.bp, который используется новой системой сборки приложений Soong в AOSP.

Я не могу собрать простое приложение HelloWorld для Android Oreo, с новыми скриптами сборки Android.bp мой скрипт:

android_app {
   name: "AmpTest",
   certificate: "platform",
   manifest: "app/src/main/AndroidManifest.xml",
   srcs: [
       "app/src/main/java/**/*.java"
   ],
   android_resource_dirs: [
       "app/src/main/res"
   ],
   enabled: true
}

но я вижу ошибки:

FAILED: out/soong/build.ninja 
out/soong/.bootstrap/bin/soong_build  -t -b out/soong -d 
out/soong/build.ninja.d -o out/soong/build.ninja Android.bp
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "core-libart"
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "core-oj"
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "core-libart"
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "ext"
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "framework"
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "okhttp"
error: packages/apps/AmpTest/Android.bp:4:1: "AmpTest" depends on undefined module "framework-res"
ninja: build stopped: subcommand failed.

я попытался добавить библиотеки: [] static_libs: []

но не повезло

Вопрос: как создать APK с Android.bp?

FYI:

PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=8.1.0
TARGET_PRODUCT=aosp_x86_64
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=x86_64
TARGET_2ND_ARCH=x86
TARGET_2ND_ARCH_VARIANT=x86_64
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.10.0-42-generic-x86_64-with-LinuxMint-18.3-sylvia
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=OPM1.171019.011
OUT_DIR=out

1 ответ

Похоже, Сун требует знания зависимостей своих модулей.

То есть, если эти другие модули находятся в mk- файлах, Сун не будет о них знать, и на данный момент, похоже, нет способа их разоблачить.

Надеюсь, что эти ссылки уточняют источник ответа.

Похоже, на данный момент лучше придерживаться mk- файлов.

Другие вопросы по тегам