Android Studio | CPP文件错误错误:位图库中未定义对“ AndroidBitmap_unlockPixels”的引用

时间:2020-05-14 21:00:05

标签: android c++ android-ndk java-native-interface

我正在尝试使用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

1 个答案:

答案 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,但是在这种情况下,代码搜索是权威的,它使查找单个函数而不是仅查找“位图”更加容易。