You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Because I want to use my OAK-1 Camera on an Android Device and apart from the non-updated projectluxonis/depthai-android-jni-example there is not detailed documentation about it. So I want to leave here my howto notes
Move to the what:
Clear instructions to compile and use the depthai-core library in an Android Device using Android Studio.
or ensure you have at least the env var NDK in the shell terminal when you compile detphai-core lib
# wherecd~
mkdir -p git/github.com/luxonis
cd git/github.com/luxonis/
# source code
git clone [email protected]:luxonis/depthai-core.git
cd depthai-core/
git submodule update --init --recursive
# This is because MacOS has a different SSL backend and there is a problem with it# curl when cmake is trying to download the dependenciesexport CURL_SSL_BACKEND=SecureTransport
# where I want to put the library, headers and cmake files
mkdir -p ~/Projects/ExternalLibs/
cmake -S. -Bbuild \
-D CMAKE_INSTALL_PREFIX=~/Projects/ExternalLibs/depthai-core \
-D CMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
-D CMAKE_CONFIGURATION_TYPES=Release \
-D BUILD_SHARED_LIBS=ON \
-D ANDROID_ABI=arm64-v8a \
-D ANDROID_PLATFORM=android-33
cmake --build build --config Release --parallel 8
cmake --build build --target install
unset CURL_SSL_BACKEND
Configure your Android c++ Project
Lines added to the default CMakeLists.txt file
# I used this to understand how to tell cmake where to find the depthai-core lib, very useful#set(CMAKE_FIND_DEBUG_MODE on)# the way I configured to tell cmake where to find the detphai-core lib, the name must be depthai in lowercase# depthai-core libraryset(depthai_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/lib/cmake/depthai"CACHEPATH"depthai-core dir compiled for Android")
set(depthai_ROOT "/Users/christian/Projects/ExternalLibs/depthai-core/lib/cmake/depthai"CACHEPATH"depthai-core root dir compiled for Android")
set(depthai_INCLUDE_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/include"CACHEPATH"depthai-core include dir compiled for Android")
set(depthai_shared_3rdparty_INCLUDE_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/include/depthai-shared/3rdparty"CACHEPATH"depthai-core include dir compiled for Android")
set(depthai_dependencies_INCLUDE_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/lib/cmake/depthai/dependencies/include"CACHEPATH"depthai-core dependencies include dir compiled for Android")
set(depthai_STATIC on)
find_package(depthai CONFIGS REQUIRED)
include_directories( ${depthai_INCLUDE_DIR})
include_directories( ${depthai_dependencies_INCLUDE_DIR})
include_directories( ${depthai_shared_3rdparty_INCLUDE_DIR})
# ...target_link_libraries(${CMAKE_PROJECT_NAME}# List libraries link to the target library
android
${depthai}# <- remember to link the library log)
This is the full CMakeLists.txt file
# For more information about using CMake with Android Studio, read the# documentation: https://d.android.com/studio/projects/add-native-code.html.# For more examples on how to use CMake, see https://github.com/android/ndk-samples.# Sets the minimum CMake version required for this project.cmake_minimum_required(VERSION 3.22.1)
# Declares the project name. The project name can be accessed via ${ PROJECT_NAME},# Since this is the top level CMakeLists.txt, the project name is also accessible# with ${CMAKE_PROJECT_NAME} (both CMake variables are in-sync within the top level# build script scope).project("aicounter")
#set(CMAKE_FIND_DEBUG_MODE on)# depthai-core libraryset(depthai_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/lib/cmake/depthai"CACHEPATH"depthai-core dir compiled for Android")
set(depthai_ROOT "/Users/christian/Projects/ExternalLibs/depthai-core/lib/cmake/depthai"CACHEPATH"depthai-core root dir compiled for Android")
set(depthai_INCLUDE_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/include"CACHEPATH"depthai-core include dir compiled for Android")
set(depthai_shared_3rdparty_INCLUDE_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/include/depthai-shared/3rdparty"CACHEPATH"depthai-core include dir compiled for Android")
set(depthai_dependencies_INCLUDE_DIR "/Users/christian/Projects/ExternalLibs/depthai-core/lib/cmake/depthai/dependencies/include"CACHEPATH"depthai-core dependencies include dir compiled for Android")
set(depthai_STATIC on)
find_package(depthai CONFIGS REQUIRED)
include_directories( ${depthai_INCLUDE_DIR})
include_directories( ${depthai_dependencies_INCLUDE_DIR})
include_directories( ${depthai_shared_3rdparty_INCLUDE_DIR})
# Creates and names a library, sets it as either STATIC# or SHARED, and provides the relative paths to its source code.# You can define multiple libraries, and CMake builds them for you.# Gradle automatically packages shared libraries with your APK.## In this top level CMakeLists.txt, ${CMAKE_PROJECT_NAME} is used to define# the target library name; in the sub-module's CMakeLists.txt, ${PROJECT_NAME}# is preferred for the same purpose.## In order to load a library into your app from Java/Kotlin, you must call# System.loadLibrary() and pass the name of the library defined here;# for GameActivity/NativeActivity derived applications, the same library name must be# used in the AndroidManifest.xml file.add_library(${CMAKE_PROJECT_NAME}# This library is shared
SHARED
# List C/C++ source files with relative paths to this CMakeLists.txt.
native-lib.cpp)
# Specifies libraries CMake should link to your target library. You# can link libraries from various origins, such as libraries defined in this# build script, prebuilt third-party libraries, or Android system libraries.target_link_libraries(${CMAKE_PROJECT_NAME}# List libraries link to the target library
android
${depthai}log)
Build you Android Project and check the build console
The text was updated successfully, but these errors were encountered:
Start with the
why
:Because I want to use my
OAK-1
Camera on anAndroid Device
and apart from the non-updated project luxonis/depthai-android-jni-example there is not detailed documentation about it. So I want to leave here myhowto notes
Move to the
what
:Clear instructions to
compile
and use thedepthai-core
library in anAndroid Device
usingAndroid Studio
.Move to the
how
:I achieved this after spending some time in my
Macbook Pro M1
with the following instructions, some of them coming from the https://github.com/luxonis/depthai-core/blob/main/README.md.These are the minimal
howto
instructions for somebody who wants to achieve the sameRequirements
Compile detphai-core
Add these environment variables to my shell configuration
or ensure you have at least the env var
NDK
in the shell terminal when you compiledetphai-core
libConfigure your Android c++ Project
Lines added to the default
CMakeLists.txt
fileThis is the full
CMakeLists.txt
fileBuild you
Android Project
and check the build consoleThe text was updated successfully, but these errors were encountered: