Lio*_*orA 1 c++ java-native-interface android android-ndk
我正在尝试使用AndroidJniBitmapOperations库。但我是一名初级开发人员,对 NDK、JNI 世界一无所知。
我成功解决了一些错误,例如“UnsatisfiedLinkError”,但现在当我尝试构建时遇到了一个新错误:
错误:未定义对“AndroidBitmap_unlockPixels”的引用
另外,我在 CPP 文件中发现了一些错误:
1.“参数‘prmeterName’的类型不正确,其类型应为‘jint’。
2.“添加外部'C'”
但我不确定最后两个是否重要。
帮助我更新这个库,因为它很重要并且多次讨论过,例如: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})
Run Code Online (Sandbox Code Playgroud)
虽然我认为这里的模板代码实际上过于复杂,你可以简化为:
target_link_libraries(JniBitmapOperationsLibrary -llog -ljnigraphics)
Run Code Online (Sandbox Code Playgroud)
虽然未经测试。
至于如何确定每个 Android API 需要使用哪个库,我发现最简单的方法是在cs.android.com上搜索它。对于这个,我进行了搜索AndroidBitmap_unlockPixels file:.*\.map\.txt(每个 NDK API 都枚举在一个*.map.txt文件中)。您也可以使用此页面,但代码搜索是权威的,在这种情况下,可以更轻松地查找单个函数而不仅仅是“位图”。