在现有项目

时间:2015-12-01 19:12:41

标签: android android-ndk google-project-tango

我是Android开发的新手,我不知道如何包含Google Tango SDK附带的库。

应用程序实际上是一个围绕c ++核心的小型java包装器,它基本上是一个轻量级的渲染引擎。它可以渲染一个模型并处理输入。这一切都是在使用Android NDK的C ++中完成的。

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

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

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

  1. 您必须下载C here
  2. 的当前探戈api和服务sdk
  3. 解压缩并放置您想要的文件夹(我将它们命名为tango_client_api和tango_service_sdk)。我更喜欢这样的结构:
    • ProjectFolder /应用/
    • ProjectFolder /构建/...
    • ...
    • tango_client_api /
    • tango_service_sdk /
    • 第三方/...
    • ...
  4. 现在你必须将lib路径包含在你的Android.mk makefile中(位于像ProjectFolder / app / src / main / 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)
    
  5. 在您的.h文件中,您可以使用例如:#include <tango_client_api.h> 访问所有TangoService_functions

  6. 就是这样。我真的建议你查看github https://github.com/googlesamples/tango-examples-c

    上的探戈C示例