Log in or register to post comments

Building samples in Android ROM source code

May 30, 2014 - 4:10am #1

I see a lot of topics of how to build Vuforia projects and Smaple apps in Eclipse and Android Studio, but nothing about building them in with the Android ROM Source code. I build my own ROM, and have been doing so for some time now. I imported the vuforia_sdk and samples under that in the samples folder, but only 2 of the samples have Android.mk files (NEEDED TO BUILD), Dominoes and ImageTargetsNative. They both have an Android.mk file and Application.mk file so the build attempts to compile them since they have an Android.mk file. But, the first error I get early on is:

make: *** No rule to make target `/home/sudosurootdev/android/source/VanirAOSP/out/target/product/ls980/obj/SHARED_LIBRARIES/Vuforia-prebuilt_intermediates/export_includes', needed by `/home/sudosurootdev/android/source/VanirAOSP/out/target/product/ls980/obj/SHARED_LIBRARIES/Dominoes_intermediates/import_includes'.  Stop.

So, I made the directory: 

out/target/product/ls980/obj/SHARED_LIBRARIES/Vuforia-prebuilt_intermediates

and touched the file: 

out/target/product/ls980/obj/SHARED_LIBRARIES/Vuforia-prebuilt_intermediates/export_includes

and continued the build. Next, a while later, I got an error similar to this ( I already cleared my terminal and don't see it in my logs so I'm paraphrasing): 

make: *** No file `Vuforia-prebuilt.so` needed by `Dominoes.so`

I see that the Android.mk file has the following: 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Vuforia-prebuilt
LOCAL_SRC_FILES = ../../../build/lib/$(TARGET_ARCH_ABI)/libVuforia.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../build/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := Dominoes
OPENGLES_LIB  := -lGLESv2
OPENGLES_DEF  := -DUSE_OPENGL_ES_2_0
LOCAL_CFLAGS := -Wno-write-strings -Wno-psabi $(OPENGLES_DEF)
LOCAL_LDLIBS := \
    -llog $(OPENGLES_LIB)
LOCAL_SHARED_LIBRARIES := Vuforia-prebuilt
LOCAL_SRC_FILES := \
    Dominoes.cpp QCARBase.cpp SampleUtils.cpp SampleMath.cpp Texture.cpp
LOCAL_ARM_MODE := arm
include $(BUILD_SHARED_LIBRARY)

...which defines

LOCAL_MODULE := Vuforia-prebuilt

and the source and C includes then PREBUILT_SHARED_LIBRARY and CLEAR_VARS to start defining

LOCAL_MODULE := Dominoes

plus it's flags and includes. Then module Dominoes uses

LOCAL_SHARED_LIBRARIES := Vuforia-prebuilt

I see everything and it looks like it is defined correctly. I've checked out placement of all the files it calls, so why I am getting these build errors? Also why are there no Android.mk files for the other Sample Apps?

Thank you. I am new to actually building apps. I have been compiling, building, and working on the full ROM source, maintaining device repos and kernel source, but I have never built an app with Eclipse or Android Studio. I only include them in my builds. Usually you just include an Android.mk file at the top where the AndroidManifest.xml file is located to define the modules and then add the project to your device makefiles:

PRODUCT_PACKAGES += \
    Dominoes \
    ImageTargetsNative

Building samples in Android ROM source code

June 3, 2014 - 2:46pm #2

The error seems to indicate that the compiler can't find the Vuforia-prebuilt.so. You might want to try using absolute file paths for the LOCAL_SRC_FILES and LOCAL_EXPORT_C_INCLUDES variables.

Log in or register to post comments