2015-12-01 46 views
0

我是Android开发新手,我不知道如何包含Google Tango SDK附带的库。在已有项目中包含项目tango SDK

该应用程序就像是一个基于轻量级渲染引擎的C++核心的小型java包装。它可以渲染一个模型并处理输入。这一切都使用Android NDK以C++完成。

问题是我现在想使用像onXyzIjAvailable()这样的函数。我如何包含和使用库?我知道this,但我需要包含库并访问TangoService_connectOnXYZijAvailable()函数。

我想强调一下,我是android开发新手,我从未包含任何东西。我只编写了自己的代码或使用Android Studio下载并包含了SDK,生成GRADLE文件并处理编译/ makefles。我发现this SO post谈论添加一个库,但我不明白答案。我如何将它导入到这个项目并构建它?

非常感谢您的帮助。

回答

2
  1. 您必须下载最新的探戈API和SDK服务对于C here
  2. 解压缩并放置文件夹(我将它们命名为tango_client_api和tango_service_sdk)你想。我喜欢一个结构类似:
    • ProjectFolder /应用/
    • ProjectFolder /编译/ ...
    • ...
    • tango_client_api/
    • tango_service_sdk/
    • 第三方/。 ..
    • ...
  3. 现在你甲肝e添加的lib路径到你的Android.mk生成文件(位于象ProjectFolder路径/应用/ src目录/主/ JNI/Android.mk)如下:

    LOCAL_PATH := $(call my-dir) 
    PROJECT_ROOT_FROM_JNI:= ../../../../.. 
    PROJECT_ROOT:= $(call my-dir)/../../../../.. 
    include $(CLEAR_VARS) 
    
    LOCAL_MODULE := lib_your_project_name 
    LOCAL_SHARED_LIBRARIES := tango_client_api 
    LOCAL_CFLAGS := -std=c++11 
    
    LOCAL_C_INCLUDES := $(PROJECT_ROOT)/tango_service_sdk/include/ \ 
    
    LOCAL_SRC_FILES := your-project-file1.cc \ 
            your-project-file2.cc \ 
            your-project-file3.cc 
    
    LOCAL_LDLIBS := -llog -lGLESv2 -L$(SYSROOT)/usr/lib 
    include $(BUILD_SHARED_LIBRARY) 
    $(call import-add-path, $(PROJECT_ROOT)) 
    $(call import-module,tango_client_api) 
    
  4. 在您的.h文件,你可以使用例如:#include <tango_client_api.h> 来获得所有TangoService_functions

就是这样。我真的建议你看看github上的探戈C示例https://github.com/googlesamples/tango-examples-c

+0

我正在开发的项目没有makefile。它只使用gradle。 gradle文件可以在这里找到(http://pastebin.com/SZuRbNS7)。我设法添加文件夹并加载头文件,但现在我得到链接器错误,因为我没有添加.so文件。 '错误:(110)未定义引用'TangoService_connectOnXYZijAvailable'' –

+1

嗨,通常你需要将需要一个共享对象来编译源,但这意味着你将需要捆绑库到apk中。这不是我们在Tango应用程序的大部分中所做的,因为我们希望应用程序始终动态链接到system/lib下的库。为了达到这个目的,我们将一个.a文件放在我们的编译源代码文件夹中,然后进行编译。更多详细信息在这里的tango示例c示例的.mk文件中:https://github.com/googlesamples/tango-examples-c/blob/master/tango_client_api/Android.mk –

相关问题