我对ASSIMP Android版的编译有疑问。
我使用Android NDK(和JNI)在JAVA Activity 中调用C++代码。
Gradle调用我的CMakelist来编译我的共享库。在此CMakelist中,我的目标是.cpp文件和库子目录(assimp和glm)。 assimp版本会引发错误:“错误:找不到-lpthread”
我的问题是:如何编译ASSIMP,如何在我的Android NDK项目中包括assimp?
最佳答案
对于我的示例项目,我正在使用以下Assimp-gradle buid文件,它对我来说很好用。一个重要的注意事项:禁用unittest的东西(必须将选项ASSIMP_BUILD_TESTS设置为off),因为assimp中存在关于gthread的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'
}
如果您还有其他问题,请告诉我!