我正在尝试使用AndroidJniBitmapOperations库。 但是我是初级开发人员,对NDK,JNI领域一无所知。
我成功解决了一些错误,例如“ UnsatisfiedLinkError”,但现在尝试构建时出现了一个新错误:
错误:未定义对“ AndroidBitmap_unlockPixels”的引用
我在CPP文件中也遇到了一些错误:
1。“参数'prarmeterName'的类型错误,应该具有'jint'类型。
2。“添加extern'C'”
但是我不确定最后两个是否重要。
请帮助我更新此库,因为它很重要且已在SO中多次讨论,例如:here。
该库自身的链接: https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations
到目前为止,我所做的全部是: https://github.com/LiorA1/MyRevApp
答案 0 :(得分:2)
您需要链接提供该API的库。在https://github.com/LiorA1/MyRevApp/blob/master/app/src/main/cpp/CMakeLists.txt中,如下所示复制日志库的代码:
find_library(log-lib log)
find_library(jnigraphics-lib jnigraphics)
target_link_libraries(JniBitmapOperationsLibrary ${log-lib} ${jnigraphics-lib})
尽管我认为模板代码实际上在这里过于复杂,您可以简化为:
target_link_libraries(JniBitmapOperationsLibrary -llog -ljnigraphics)
不过未经测试。
关于如何确定每个Android API需要使用哪个库,我发现最简单的方法是在cs.android.com上进行搜索。为此,我搜索了AndroidBitmap_unlockPixels file:.*\.map\.txt
(每个NDK API都在*.map.txt
文件中进行了枚举)。您也可以使用this page,但是在这种情况下,代码搜索是权威的,它使查找单个函数而不是仅查找“位图”更加容易。