0

Is it possible to build the android application using Android.bp?

I tried to generate the Android.bp file from Android.MK file using the following command

androidmk Android.mk > Android.bp

And the resultant Android.bp file is like,

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_RESOURCE_DIR
// LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res frameworks/support/v7/appcompat/res  frameworks/support/design/res
TARGET_ABI = ["x86_64"]
android_app {
srcs: ["src/**/*.java"],

name: "ResourceDemo",

static_libs: ["android-support-v4"] + ["android-support-v7-appcompat"],
certificate: "platform",

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_PRIVILEGED_MODULE
// LOCAL_PRIVILEGED_MODULE := true

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_USE_AAPT2
// LOCAL_USE_AAPT2 := true

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_DEX_PREOPT
// LOCAL_DEX_PREOPT := true

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_PROGUARD_ENABLED
// LOCAL_PROGUARD_ENABLED := nosystem

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_PROGUARD_FLAG_FILES
// LOCAL_PROGUARD_FLAG_FILES := proguard.flags

aaptflags: ["--auto-add-overlay"],
product_variables: {
    pdk: {
        enabled: false,
    },
},
}

After I run the make build command, I got the following error

[1/1] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja
[2/2] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja
[1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
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/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on     undefined module "core-libart"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on  undefined module "core-oj"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on  undefined module "core-libart"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on undefined module "ext"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on undefined module "framework"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on undefined module "okhttp"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on undefined module "android-support-v4"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on undefined module "android-support-v7-appcompat"
error: packages/apps/ResourceDemo/Android.bp:1:1: "ResourceDemo" depends on undefined module "framework-res"
ninja: build stopped: subcommand failed.
09:21:36 soong failed with: exit status 1

#### failed to build some targets (3 seconds) ####

help me to build using Android.bp

Midhun PM
  • 512
  • 1
  • 7
  • 24

1 Answers1

0

It's possible, but there are limitations, and you'll need to use a fairly recent tip of the AOSP master. For example, here's a Kotlin based privileged app built from an Android.bp file: https://github.com/jzoran/kotlin-privapp/blob/master/Android.bp

Several platform components have recently been converted to Android.bp, but depending on the complexity of your app, what components it depends on, it may or may not be possible to do yet.

Some Android.mk statements may not be supported (yet), and androidmk may not be completely up to date on what Soong supports. If you get a translation error, take a look at the Soong build documentation that gets generated at out/{TARGET}/soong/docs/soong_build.html. You may find an equivalent Blueprint statement there.

fejd
  • 2,545
  • 1
  • 16
  • 39