ASSIMP - Android NDK工具链

时间:2018-04-05 07:18:20

标签: android c++ compilation android-ndk assimp

我在编译ASSIMP for Android时遇到了问题。

我使用Android NDK(和JNI)在JAVA活动中调用我的C ++代码。

Gradle调用我的CMakelist来编译我的共享库。在这个CMakelist中,我将我的.cpp文件和我的库子目录(assimp和glm)作为目标。 assimp build会抛出一个错误:'error:找不到-lpthread'

我的问题是:如何编译ASSIMP以及如何在我的Android NDK项目中包含assimp?

1 个答案:

答案 0 :(得分:0)

对于我的示例项目我正在使用以下Assimp-gradle buid文件,它对我来说很好。一个重要的注意事项:禁用unittest东西(选项ASSIMP_BUILD_TESTS必须设置为off),因为assimp中存在关于gst支持pthread的错误。

android {
    compileSdkVersion 24
    buildToolsVersion '26.0.2'

    defaultConfig {
        applicationId "com.app.kkulling_solutions.assimpviewer"
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        externalNativeBuild {
            cmake {
                arguments '-DASSIMP_BUILD_ZLIB=ON -DASSIMP_BUILD_TESTS=OFF'
                cppFlags '-fexceptions -frtti -std=c++11'
            }
        }
        //-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 
                'proguard-rules.pro'
        }
    }

    externalNativeBuild {
        cmake {
            path 'src/main/cpp/JNI/CMakeLists.txt'
        }

    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.1.1'
}

如果您有任何其他问题,请与我们联系!