我在编译ASSIMP for Android时遇到了问题。
我使用Android NDK(和JNI)在JAVA活动中调用我的C ++代码。
Gradle调用我的CMakelist来编译我的共享库。在这个CMakelist中,我将我的.cpp文件和我的库子目录(assimp和glm)作为目标。 assimp build会抛出一个错误:'error:找不到-lpthread'
我的问题是:如何编译ASSIMP以及如何在我的Android NDK项目中包含assimp?
答案 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'
}
如果您有任何其他问题,请与我们联系!