Android Отладка NDK C / C ++ | arm64-v8a: Ошибка конфигурации - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь создать пример кода 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.
...