在Android应用中使用cpp文件

时间:2017-04-23 12:31:04

标签: android c++ android-ndk

我正在尝试在我的Android应用中使用these cpp files。添加它们之后,我收到变量的错误Can't resolve type ...。我想知道我是否正确地将它们添加到我的应用程序中。

thresholder.cppthresholder.h文件位于/app/src/main/cpp/。那里还有一个CMakeLists.txt文件,内容为:

cmake_minimum_required(VERSION 3.4.1)

add_library(thresholder SHARED
        thresholder.cpp)

target_link_libraries(thresholder
                  android
                  log)

在我的build.gradle文件中,我有(它是从Hello JNI sample复制的)

externalNativeBuild {
        cmake {
            arguments '-DANDROID_TOOLCHAIN=clang'
        }
    }

externalNativeBuild {
    cmake {
        path "src/main/cpp/CMakeLists.txt"
    }
}
productFlavors {
    arm7 {
        // in the future, ndk.abiFilter might also work
        ndk {
            abiFilter 'armeabi-v7a'
        }
    }
    arm8 {
        ndk {
            abiFilters 'arm64-v8a'
        }
    }
    arm {
        ndk {
            abiFilter 'armeabi'
        }
    }
    x86 {
        ndk {
            abiFilter 'x86'
        }
    }
    x86_64 {
        ndk {
            abiFilter 'x86_64'
        }
    }
    mips {
        ndk {
            abiFilters 'mips', 'mips64'
        }
    }
    universal {
        ndk {
            abiFilters 'mips', 'mips64', 'x86', 'x86_64'
        }
    }
}

1 个答案:

答案 0 :(得分:0)

当我制作带有c ++文件的Android应用程序时,我不得不在项目的根目录中创建一个jniLibs文件夹并粘贴我设备架构的所有库(armeabi-v7a)。你有没有这样做过?

此外,导致此错误的变量类型是什么?