Ani*_*ole 22 android bitmap android-ndk
编译我的应用程序时遇到问题,这是受位图等离子的启发.我在打电话
if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) {
LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret);
return;
}
if (info.format != ANDROID_BITMAP_FORMAT_RGB_565) {
LOGE("Bitmap format is not RGB_565 !");
return;
}
if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) {
LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
}
/*****code here***********/
AndroidBitmap_unlockPixels(env, bitmap);
Run Code Online (Sandbox Code Playgroud)
我在源文件中包含了android/bitmap.h.我在ubuntu 10.10上使用android-ndk-r5b和sdk-9.
我收到了一个错误
/home/user5432/workspace/bitmapproj/obj/local/armeabi/objs-debug/mybitmap.o : In function Java_com_example_plasma_PlasmaView_renderPlasma
"undefined reference to AndroidBitmap_getInfo"
"undefined reference to AndroidBitmap_lockPixels"
"undefined reference to AndroidBitmap_unlockPixels"
Run Code Online (Sandbox Code Playgroud)
问题出在调试代码上.但是问题是什么?任何人都有答案吗?
Ani*_*ole 42
经过简短的研究,我知道我需要添加
`LOCAL_LDFLAGS += -ljnigraphics`
Run Code Online (Sandbox Code Playgroud)
在Android.mk文件中.
小智 19
我通过在文件"CMakeList.txt"中添加"-ljnigraphics"行来解决:
"target_link_libraries( # Specifies the target library.
native-lib
-ljnigraphics
# Links the target library to the log library
# included in the NDK.
${log-lib} )
Run Code Online (Sandbox Code Playgroud)
如果使用Android Studio,您还需要将库添加到gradle.build文件中.
android {
...
defaultConfig {
...
ndk {
ldLibs = ["android", "jnigraphics", <other ndk libraries you might need>]
moduleName "webcam"
}
}
}
Run Code Online (Sandbox Code Playgroud)
似乎gradle忽略了Android.mk文件的ndk依赖项.请参阅未定义的对"__android_log_print"的引用,特别是Stephen Kaiser对所选答案和BoredT答案的评论.
| 归档时间: |
|
| 查看次数: |
10371 次 |
| 最近记录: |