SDK Addon build fail

After attempting to build a SDK addon, the build fails with this error:

make: *** No rule to make target out/target/product/msm8916_64/obj/SHARED_LIBRARIES/libqc-opt_intermediates/export_includes , needed by out/target/product/msm8916_64/obj/SHARED_LIBRARIES/libskia_intermediates/import_includes. Stop.

This is the build command I’m using:

make PRODUCT-ballard-sdk_addon

The SDK build script was borrowed from some github code:

Here is the make file I’m using:

# Add in the product specific SDK add-on library to the system image
# as a package
PRODUCT_PACKAGES := \
    com.hiqes.android.utility_library

# Copy over the XML permissions file for the library to the system image
PRODUCT_COPY_FILES := \
    device/qcom/msm8916_64/android-device-ballard/ballard/frameworks/utility_library/com.hiqes.android.utility_library.xml:system/etc/permissions/com.hiqes.android.utility_library.xml \

# Name the SDK Add-on
PRODUCT_SDK_ADDON_NAME := utility_library

# The SDK has a manifest declaring what it comes with as well as a hardware
# definition which describes what the hardware looks like.  These must be
# copied as part of the SDK package, so specify them here.  Any custom skins
PRODUCT_SDK_ADDON_COPY_FILES := \
    device/qcom/msm8916_64/android-device-ballard/ballard/manifest.ini:manifest.ini \
    device/qcom/msm8916_64/android-device-ballard/ballard/hardware.ini:hardware.ini
PRODUCT_SDK_ADDON_COPY_MODULES := \
    com.hiqes.android.utility_library:libs/utility_library.jar
PRODUCT_SDK_ADDON_STUB_DEFS := $(LOCAL_PATH)/utility_library_stub_defs
# PRODUCT_SDK_ADDON_DOC_MODULES := utility_library
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_arm64.mk)
PRODUCT_NAME   := ballard
PRODUCT_DEVICE := msm8916_64
PRODUCT_BRAND  := Android
PRODUCT_MODEL  := MSM8916 for arm64

PRODUCT_CHARACTERISTICS := nosdcard

I’m using this SDK:
linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4

Any idea how to fix this build error?

thanks!

It seems some files were missing. I just copied those file over to the out folder. Which leads to this error:

make: *** No rule to make target NOTICE-TARGET-STATIC_LIBRARIES-libqc-skia’, needed byout/target/product/msm8916_64/system/lib64/libskia.so’. Stop.

NOTICE-TARGET-STATIC_LIBRARIES-libqc-skia
I couldn’t locate this file.

Any ideas?

Yeah, use the board support package that you download from qualcomm. It provides the prebuilt proprietary files for the processor. Btw, that package also includes a build script file that does all of this for you. Fallow the instructions for building android in the 96boards/qcomm developers network page.

I am not sure if it requires the qcom specific libqc-skia to actually run on the board but you could try going into the {build directory}/external/skia/Android.mk and comment out the following line. This will keep it from linking the libqc-skia stuff and should force it to build the libskia instead (it did for me in nougat but the image didn’t get past the initial android boot window. But that could be for a variety of other reasons. Specifically, in Nougat the android 5 and 6 prebuilt libqc-skia.a file is not the same libqc-skia headers for nougat. So, I think it requires someone to recompile the libqc-skia (possibly from qualcomm?) and post it.

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
LOCAL_WHOLE_STATIC_LIBRARIES += libqc-skia
endif

I just recompiled android 5.1.1 with the libqc-skia commented out and the the board runs the image without the libqc-ski precompiled modules.