Я пытаюсь создать пример кода NDK Android для камеры Occipital, но использую Gradle, а не сценарий оболочки.
Это их рецепт, основанный на их документах:
В хост-системе, подобной Unix, или системе Windows с установленной средой, подобной * 1029, Можно использовать включенный сценарий сборки:
$ Scripts/build.sh -p android -a arm64
В Builds / android -CONFIG-arm64 будет сгенерирована Android система сборки CMake. Gradle проекты для каждого примера приложения будут создаваться в Builds / android -CONFIG-arm64 / Samples / APP / APP- android. В качестве альтернативы, CMake может быть вызван напрямую. Например, в хост-системе, подобной Unix, могут использоваться следующие команды:
$ mkdir build
$ cd build
$ "$ANDROID_HOME/cmake/3.6.4111459/bin/cmake" \
-G'Ninja' \
-DCMAKE_MAKE_PROGRAM="$ANDROID_HOME/cmake/3.6.4111459/bin/ninja" \
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_HOME/ndk-bundle/build/cmake/android.toolchain.cmake" \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID:BOOL=1 \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-24 \
-DANDROID_STL=c++_shared \
-DSCSDK_TARGET_ARCH=arm64 \
..
$ "$ANDROID_HOME/cmake/3.6.4111459/bin/ninja" Samples
Я взял вышеуказанные ручные команды и попытался создать свой собственный Gradle на основе проекта:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.myoccipitaltestapp"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'arm64-v8a'
}
externalNativeBuild {
cmake {
cppFlags '-std=c++11'
arguments '-DCMAKE_MAKE_PROGRAM=%ANDROID_HOME%/cmake/3.10.2.4988404/bin/ninja',
'-DCMAKE_TOOLCHAIN_FILE=C:%ANDROID_HOME%/ndk/21.1.6352462/build/cmake',
'-DANDROID_TOOLCHAIN=gcc',
'-DANDROID_STL=c++_shared',
'-DCMAKE_BUILD_TYPE=Release' ,
'-DANDROID:BOOL=1',
'-DANDROID_ABI=arm64-v8a',
'-DANDROID_PLATFORM=android-24',
'-DANDROID_ARM_NEON=TRUE',
'-DSCSDK_TARGET_ARCH=arm64'
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path 'src/main/CMakeLists.txt'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
Я использую последнюю версию Android Studio 3.6.3, Windows 10, Gradle 6.3.
При попытке построить, Я получаю эту ошибку:
C/C++ debug|arm64-v8a : Configuration failed.