Greetings,
I have a vendor library (let's call it mylib), located under vendor/ and to be Treble compliant it should be on the vendor partition.
It was previously built using Android.mk and this library was used by system/vold. Now as vold was migrated to Android.bp I migrated my library as well, so that vold can use it (as .bp files cannot use .mk files).
This solution worked fine until I realised that mylib is built under $OUT/system/lib/. I tried resolving this by adding:
under the Android.bp file.
This is when these problems occured:
error: system/vold/Android.bp:89:1: dependency "mylib" of "libvold" missing variant:
arch:android_arm_armv7-a-neon_cortex-a15, image:core, link:shared
available variants:
arch:android_arm_armv7-a-neon_cortex-a15, image:vendor, link:shared
error: system/vold/tests/Android.bp:1:1: dependency "mylib" of "vold_tests" missing variant:
arch:android_arm_armv7-a-neon_cortex-a15, image:core, link:shared
available variants:
arch:android_arm_armv7-a-neon_cortex-a15, image:vendor, link:shared
error: system/vold/Android.bp:150:1: dependency "mylib" of "vold" missing variant:
arch:android_arm_armv7-a-neon_cortex-a15, image:core, link:shared
available variants:
arch:android_arm_armv7-a-neon_cortex-a15, image:vendor, link:shared
As I understand the problem here is that system binaries and libraries cannot link vendor libraries.
Can someone propose a solution to this problem? And I must add that this was working until vold was migrated to Android.bp-soong build (Android O to Android P migration in my case).