需要调用一个jni,有java和C++的源码,但是对于运行过程中出现的问题还是不好排查,故这时需要进行debug了。这个debug涉及java到C/C++的,所以不是那么直接,故找了些资料学习下。
1:调试集成 Java 和 C/C++ 的代码(对着例子跑通基本就可以了)
http://www.ibm.com/developerworks/cn/java/j-jnidebug/
2:Linux_Macintosh 平台下 Eclipse 环境中的 JNI 混合语言调试
http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-jnidb/
3:Integrated Debugger for Java*/JNI Environments
http://software.intel.com/en-us/articles/integrated-debugger-for-javajni-environments/
4:Support seamless debugging between JDT and CDT
http://wiki.eclipse.org/index.php/Support_seamless_debugging_between_JDT_and_CDT
5:A step-by-step guide for debugging native code
http://www.eclipse.org/sequoyah/documentation/native_debug.php
6:How to
Use Eclipse to Debug JNI code (Java & C/C++)
http://stackoverflow.com/questions/2762916/how-to-use-eclipse-to-debug-jni-code-java-c-c
附:GDB文档:
陈皓 用GDB调试程序 系列
http://blog.csdn.net/haoel/article/details/2879
Debugging with gdb
http://sourceware.org/gdb/onlinedocs/gdb/
分享到:
相关推荐
在Android开发中,JNI(Java Native Interface)是一个关键的组件,允许Java代码调用本地(C/C++)代码,反之亦然。这对于性能敏感的应用、底层库的集成以及利用现有C/C++库是非常有用的。本教程将聚焦于如何在...
同时,可能需要借助如Android Debug Bridge(ADB)工具来调试和测试I2C通信。 6. **安全和权限**:由于I2C涉及到硬件访问,所以在Android应用中进行I2C通信需要相应的权限。开发者需要在AndroidManifest.xml文件中...
__android_log_print(ANDROID_LOG_DEBUG, "MemoryInfo", "无法打开/proc/meminfo"); } // 返回内存信息字符串,这里简化处理,实际应用需要解析内存信息 return env->NewStringUTF("内存信息..."); } ``` 3. *...
在 development 环境下,JNI 可以用于实现一些高级的功能,例如 debug、测试等。开发者可以使用 JNI 来实现一些特殊的功能,例如 native 代码的调试、性能优化等。 Android JNI 是一个功能强大且复杂的接口,它提供...
> `Generate Signed Bundle / APK`或`Build` -> `Make Project`,系统会自动调用`javah`工具(在现代版本中,是`javac -h`)生成JNI头文件,一般位于`app/build/generated/source/ndk/release/`或`debug/`目录下。...
确保链接到OpenCV库,并指定正确的平台和配置(例如,x86或x64,Debug或Release)。 4. 创建Java头文件:使用`javah`工具(在Java SDK中提供)从Java类的声明生成C++的头文件。这个类将包含JNI方法的声明,这些方法...
__android_log_print(ANDROID_LOG_DEBUG, "HelloJNI", "Hello from JNI!"); return (*env)->NewStringUTF(env, "Hello from JNI!"); } ``` 这段代码定义了一个名为`Java_...
- **找不到符号**:确保.so库文件被正确地复制到了`app/build/intermediates/cmake/release/obj`或`debug/obj`目录下,并且对应的ABI被包含在`abiFilters`中。 - **JNI函数找不到**:检查Java方法签名是否正确,...
__android_log_print(ANDROID_LOG_DEBUG, "MyApp", "Hello from JNI!"); } ``` 在这个例子中,`"MyApp"`是我们的日志标签,`"Hello from JNI!"`是日志消息。当这个`nativeMethod`被Java层调用时,将在Android的...
### JNI编写步骤详解 #### 一、概述 JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在Android开发中尤其重要,因为这使得开发者可以在性能要求较高的场景下...
JNI(Java Native Interface)是Java平台的标准组成部分,它允许Java代码和其他语言写的代码进行交互。在Android开发中,JNI常用于提升性能、调用系统库或者实现特定功能,如硬件加速、图形处理等。本教程将详细介绍...
__android_log_print(ANDROID_LOG_DEBUG, "Thermometer", "Generated temperature: %f", temperature); return temperature; } ``` 在Android Studio中,我们需要配置CMakeLists.txt文件来编译C++代码,并将其...
在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与其他语言编写的代码进行交互,特别是C++或C。JNI在处理性能敏感的计算、访问硬件特性或者利用现有C库时非常有用。然而,在JNI编程...
最后,运行`./gradlew build`或在Android Studio中同步构建项目,生成的.so文件会自动放入到相应的ABI目录下,例如`app/build/intermediates/cmake/debug/obj`。 现在,Java代码可以调用`sayHelloFromJNI`方法,C++...
JNI(Java Native Interface)是Java平台提供的一种标准接口,它允许Java代码和其他语言写的代码进行交互。这个"jniDemo Log版"是一个示例项目,旨在教你如何在使用JNI的C/C++代码中添加日志打印功能,以方便后期的...
- 使用JNI_DEBUG宏可以在JNI代码中插入调试信息。 - 调试本地代码时,可以使用常规的C/C++调试器,如GDB。 7. 实践中的注意事项: - 记得释放本地资源,例如使用NewXXX()创建的对象需要DeleteLocalRef()释放。 ...
Android JNI 调试打印 char 数组的实例详解是 Android 开发中的一种常见需求,特别是在 debug 和测试阶段。在 Android 中,使用 JNI 调用 native 方法时,需要将 char 数组转换为字符串,方便 debug 和 log 输出。...
Android Studio会自动编译C/C++代码,并将其生成的.so文件放入`app/build/intermediates/cmake/debug/obj`目录下。在设备或模拟器上运行应用时,Android系统会加载.so文件并执行对应的本地方法。 总结来说,配置一...