Android Studio | CPP file errors error: undefined reference to 'AndroidBitmap_unlockPixels' In bitmap library

Android Studio | CPP file errors error: undefined reference to 'AndroidBitmap_unlockPixels' In bitmap library

我正在尝试使用 AndroidJniBitmapOperations 库。 但我是一名初级开发人员,对 NDK、JNI 世界一无所知。

我成功解决了一些错误,例如 'UnsatisfiedLinkError',但现在我在尝试构建时遇到了一个新错误:

error: undefined reference to 'AndroidBitmap_unlockPixels'

此外,我在 CPP 文件中发现了一些错误:

1."参数 'prarmeterName' 的类型不正确,其类型应为 'jint'.

2."Add extern 'C'"

但我不确定最后两个是否重要。

帮我更新这个库,因为它很重要并且在 SO 中讨论了好几次,比如:here.

它自己的库的link: https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations

到目前为止我所做的是: https://github.com/LiorA1/MyRevApp

您需要 link 提供 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. For this one, I searched for AndroidBitmap_unlockPixels file:.*\.map\.txt (every NDK API is enumerated in a *.map.txt file). You can also use this page 上搜索它,但是代码搜索是权威的,可以更轻松地查找单个函数,而不仅仅是 "bitmap",在这种情况下。