android - Android Studio | CPP文件错误错误:位图库中对 'AndroidBitmap_unlockPixels'的 undefined reference

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

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

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

error: undefined reference to 'AndroidBitmap_unlockPixels'



另外,我在CPP文件中收到一些错误:

1.“参数'prarmeterName'的类型错误,应具有'jint'类型。

2.“添加外部'C'”

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

帮助我更新此库,因为它很重要并且已经在SO中进行了多次讨论,例如:here

库本身的链接:
https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations

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

最佳答案

您需要链接提供该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,但是代码搜索是权威的,在这种情况下,可以轻松地查找单个功能,而不仅仅是“位图”。

关于android - Android Studio | CPP文件错误错误:位图库中对 'AndroidBitmap_unlockPixels'的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61807285/

相关文章:

Android EditText 替代品

android - 依赖于语言的 Android 应用程序启动器图标

c++ - 在 linux 终端中只编译编辑过的文件

C++ std::set 插入时读取无效

android - 如果没有互联网,getaddrinfo() 会阻止 android 中的应用程序

android - 使用 NDK 编译 native 代码

android - 在 Android 上获取特定的短信

Android 倾斜补偿指南针

c++ - 从文件中读取会产生意外的输出

java - 不支持使用 ant 的 major.minor 版本 52.0