[原]Android Native Debug

1,安装adt插件,cdt插件
2,SDK目录配置:
  Eclipse文件菜单选择“Window”--->“Preferences”--->“Android”--->设置“SDK Location”--->”Browse”选择SDK目录即可。 如下图:
  NDK目录配置:
  设置完SDK后还需在“Android”配置项上设置下“NDK”,选择NDK后,有一个选项“NDK Location”,这里配置NDK根目录。
3,设置build参数,在project->properties->C/C++ Build中设置Build command,把Use default选项去掉,在ndk-build后面添加参数NDK_DEBUG=1,使得编译出的SO带源码等调试信息。
4,右键工程,点击添加native支持菜单
5,用ndk编译过的结果文件都有objs目录,把该目录下的动态库复制到libs目录下
6,运行时选择debug as下的Android native application
7,将eclipse切换到ddms视图模式,选择要debug的进程,然后点击debug图标。

问题:

1、Unable to detect application ABI‘s

解决办法:编辑Application.mk文件,根据你的模拟器处理器类型和SDK级别增加如下两行:

APP_ABI := armeabi-v7a
     APP_PLATFORM := android-14(必须和AndroidMenifest.xml中的android:minSdkVersion相对应)

2、

gdbserver output: run-as: Package ‘com.opencv.genderdetector‘ is unknown

Verify if the application was built with NDK_DEBUG=1

解决办法一:

  $ adb shell

  $ su

  # chmod 771 /data/data

  # chown system.system /data/data

解决办法二:

  使用模拟器,模拟器能正常Debug

时间: 2024-10-12 02:02:31

[原]Android Native Debug的相关文章

[原]Android打包之Eclipse打包

Android自动打包流程详细图: 步骤一: 在工程中新建一个build.xml. 步骤二: 给工程配置ant工具. 选择ant工具的步骤如下: Windows->Shown view->Ant 这样就出项了ant视图框.在ant视图框中单击右键,选择addBuilderfile添加ant编译文件. 添加好ant编译文件后,我们还需要对编译文件进行设置:选中编译文件,右键单击选择Run As->external Tools configurations 弹出了ant编译的配置框. 在编译

[原]Android打包之Eclipse打多渠道包

Android自动打包流程详细图: 步骤一和步骤二参考:[原]Android打包之Eclipse打包 步骤三:编写build.xml <?xml version="1.0" encoding="UTF-8"?> <project name="AndroidTouchDemo"> <!-- 指定配置文件 --> <property file="default.properties">

GDB + gdbserver 远程调试android native code

原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuTarget: Android ICS 1.将gdbserver放入设备. 确保系统有arm-*-gdb,及存在设备端将要运行的gdbserver,gdbserver可以由google ndk中获取,在ndk的如下目录可以找到这个文件: 点击(此处)折叠或打开 android-ndk-r8/toolc

[原][Android]All WebView methods must be called on the same thread.

问题 webView调用JS出错. class TestJS {         ......         public TestJS(){         }                  public void save(String data){                         webView.loadUrl("javascript: alert(" + data +")");         }         ......     

android native HAL程序 java程序 linux kernel打印调用栈的方法

android native HAL程序 java程序 linux kernel打印调用栈的方法 关于android java打出调用栈的方法 1)方法一:refs:frameworks/base/services/java/com/android/server/ActivityManagerService.javastartProcessLocked(){Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "amProcessStart&quo

Android Native层Binder.transact()函数调用 Binder.onTransact() 函数失败分析

Q:Android Native层Binder.transact()函数调用 Binder.onTransact() 函数失败? 在Android Native层调用Camera.h中的api实现一个截屏功能的应用时,发现通过gCamera->setListener(new ScreenCaptureListener())设置到Camera的mListener的用于接收Camera预览数据的回调函数没有被调用,导致截屏失败? 注: Camera类文件汇总: libcamera_client.so

使用cydia substrate 来进行android native hook

? cydia不仅可以hook java代码,同样可以hook native代码,下面举一个例子来进行android native hook 我是在网上找到的supermathhook这个项目,在他基础上修改的,本来是为了仓促应对阿里的ctf 这个项目位置: 这个项目是用来hook jni 代码的,而我是用来hook dvmDexFileOpenPartial这个函数的,所以必须使用 Mshookfunction这个函数,这个函数在libsubstrate.so中,自己去官网下载就可以了. 接下

DPF.Android.Native.Components.v2.8.1 for delphi xe6 使用DPFJAlertDialog遇到的问题

使用DPFJAlertDialog控件时发现DPFJAlertDialog1Click不能捕获到对话框到底按了那个按键,上网搜索后找到了解决方法: 打开DPF.Android.JAlertDialog.pas文件,找到procedure TAlertDialogOnClickListener.onClick( P1: JDialogInterface; P2: Integer ) 然后按下面的方法修改就可以. procedure TAlertDialogOnClickListener.onCli

[原] Android 自定义View 密码框 例子

遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 样子 支持的样式 可以通过XML定义影响外边和行为的属性如下 边框圆角值,边框颜色,分割线颜色,边框宽度,密码长度,密码大小,密码颜色 <declare-styleable name="PasswordInputView"> <attr name="border