我一直在尝试调试我用c / c ++编写的共享库,但我无法使用eclipse调试它。当我设置一个断点永远不会被命中并且在gdb中执行info sharedlibrary
之后,我得到了他,确认该库不存在(称为libtest-java.so)
From To Syms Read Shared Object Library
No /system/bin/linker
0x40093070 0x400c36f8 Yes /Users/jpuig/Development/test/git/test_lib-protoype/java/test_Android/obj/local/armeabi/libc.so
No libstdc++.so
No libm.so
No liblog.so
No libcutils.so
No libgccdemangle.so
No libcorkscrew.so
No libutils.so
No libbinder.so
No libhardware.so
No libmemtrack.so
No libz.so
No libandroidfw.so
No libexpat.so
No libstlport.so
No libnativehelper.so
No libnetutils.so
No libsync.so
No libui.so
No libGLES_trace.so
No libEGL.so
No libGLESv2.so
No libgui.so
No libinput.so
No libcamera_metadata.so
No libcamera_client.so
No libpng.so
No libft2.so
No libjpeg.so
No libgabi++.so
No libicuuc.so
No libicui18n.so
No libskia.so
No libsqlite.so
No libGLESv1_CM.so
No libETC1.so
No libwpa_client.so
No libhardware_legacy.so
No libselinux.so
No libsonivox.so
No libcrypto.so
No libssl.so
No libstagefright_foundation.so
No libspeexresampler.so
No libaudioutils.so
No libmedia.so
No libusbhost.so
No libharfbuzz_ng.so
No libLLVM.so
No libbcinfo.so
No libbcc.so
No libRS.so
No libRScpp.so
No libhwui.so
No libandroid_runtime.so
No libdvm.so
No libjavacore.so
No memtrack.msm8974.so
No libdrmframework.so
No libdrmframework_jni.so
No libconnectivitymanager.so
No libstagefright_omx.so
No libstagefright_yuv.so
No libvorbisidec.so
No libpowermanager.so
No libstagefright_enc_common.so
No libstagefright_avc_common.so
No libstagefright.so
No libmtp.so
No libexif.so
No libstagefright_amrnb_common.so
No libmedia_jni.so
No libexif_jni.so
No libcommon_time_client.so
No libnbaio.so
No libeffects.so
No libaudioflinger.so
No libvideoeditor_osal.so
No libvideoeditor_videofilters.so
No libvideoeditorplayer.so
No libvideoeditor_core.so
No libvideoeditor_jni.so
No librs_jni.so
No libandroid.so
No libwilhelm.so
No libOpenSLES.so
No libjnigraphics.so
No libwebviewchromium.so
No libwebviewchromium_plat_support.so
No libjavacrypto.so
No libgsl.so
No libadreno_utils.so
No libEGL_adreno.so
No libGLESv1_CM_adreno.so
No libGLESv2_adreno.so
No eglsubAndroid.so
No libsc-a3xx.so
No libqdutils.so
No libmemalloc.so
No gralloc.msm8974.so
0x77dbd638 0x77eb97b8 No /Users/jpuig/Development/test/git/test_lib-protoype/java/test_Android/obj/local/armeabi/libtest-java.so
有没有办法手动加载这个库或什么?在make文件中我使用以下内容:
包括$(CLEAR_VARS)
######
LOCAL_CPPFLAGS += -D DEBUG=1 -D NDK_DEBUG=1
LOCAL_CFLAGS += -D DEBUG=1 -D NDK_DEBUG=1
APP_OPTIM := debug
APP_CFLAG := -g -ggdb -O0
######
非常感谢你的时间!
答案 0 :(得分:2)
我设法解决了它!
我在另一个类中加载了库,当按下按钮时我的MainActivity正在调用它,因此当GDB准备就绪时没有加载的库...我认为GDB会在运行时选择新的库,所以为了加载库我只是在第一个被调用的类的静态构造函数中添加了以下行:
static {
System.loadLibrary("test-java");
}