Android ndk 使用r9进行NDK调试可以在W7/64上运行,但在XP中会出现问题
我最近加载了新的Android开发工具SDK 20130717和NDK r9 到目前为止,我有以前的版本,在我的两个系统(XP和W7/64)上都可以在Eclipse中正常工作和调试 现在,带有新工具的W7/64可以正常工作,并且在新工具安装和所需路径环境更改后可以调试我的应用程序 当我选择“调试为”+“Android本机应用程序”时,它工作正常 然而,XP虽然在文件夹/cygwin等方面有精确的配置,但在安装了新工具并更改了必要的路径env之后,它似乎无法启动ndk dbg和它;在“发布MyApp(1):(100%)的时候,他一直在等待。 这发生在我选择“Debug As”+“Android原生应用程序”之后 有什么线索可以说明原因吗?或 在XP和r9调试中是否有任何已知的问题我没有注意到 谢谢, 克里斯托斯 *编辑 尝试手动启动ndk gdb,这是我得到的,欢迎任何提示 大宗报价 $ndk gdb--开始--详细--强制 Android NDK安装路径:/cygdrive/e/Android-NDK-r9 使用默认adb命令:/cygdrive/e/adt-bundle-windows-x86-20130717/sdk/platform tools/adb 找到ADB版本:Android调试桥版本1.0.31 使用ADB标志: 使用JDB命令:/cygdrive/e/Android/Java/jdk1.7.0_21/bin/JDB 使用自动检测到的项目路径: 找到的包名称:myndkpackage 应用目标ABI:armeabi-v7a 设备API级别:17 设备CPU ABIs:armeabi-v7a armeabi 兼容设备ABI:armeabi-v7a 使用gdb setup init:./libs/armeabi-v7a/gdb.setup 使用工具链前缀:/cygdrive/e/android-ndk-r9/toolschains/arm-linux-androideabi-4.6/prebuild/windows/bin/arm-linux-androideabi- 使用app out目录:./obj/local/armeabi-v7a 找到可调试标志:true 找到设备gdbserver:/data/data/myndkpackage/lib/gdbserver 找到数据目录:'/data/data/myndkpackage' 找到第一个可启动的活动:myndkpackage.MainActivity 启动活动:myndkpackage/myndkpackage.main活动 命令:adb_cmd shell am start-D-n myndkpackage/myndkpackage.main活动 开始:Intent{cmp=myndkpackage/.MainActivity} 命令:adb_cmd shell sleep 2 发现正在运行PID:2787 正在终止现有调试会话 命令:adb_cmd shell kill-9 2753 已成功启动gdbserver 设置网络重定向 命令:adb_cmd shell作为myndkpackage lib/gdbserver+debug套接字运行--附加2787 命令:adb_cmd forward tcp:5039 localfilesystem:/data/data/myndkpackage/debug socket 附件;pid=2787 侦听Unix套接字调试套接字 命令:adb_cmd pull/system/bin/app_process obj/local/armeabi-v7a/app_process 599 KB/s(0.015秒内9588字节) 从设备/模拟器中拉取应用程序进程 命令:adb_cmd pull/system/bin/linker obj/local/armeabi-v7a/linker 658 KB/s(0.093s中为63244字节) 从设备/仿真器中拉出链接器 命令:adb_cmd pull/system/lib/libc.so obj/local/armeabi-v7a/libc.so 744kb/s(0.390s中的297608字节) 从设备/模拟器中提取libc.so 设置JDB连接 命令:adb_cmd转发tcp:65534 jdwp:2787 java.io.IOException:握手失败-连接过早关闭 位于com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:136) 位于com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:232) 位于com.sun.tools.jdi.genericatachingconnector.attach(genericatachingconnector.java:116) 位于com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:90) 位于com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519) 位于com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328) 位于com.sun.tools.example.debug.tty.Env.init(Env.java:63) 位于com.sun.tools.example.debug.tty.tty.main(tty.java:1066) 致命错误: 无法连接到目标VM /cygdrive/e/android-ndk-r9/ndk gdb:742行:4636分段错误$GDBCLIENT-xAndroid ndk 使用r9进行NDK调试可以在W7/64上运行,但在XP中会出现问题,android-ndk,gdbserver,ndk-gdb,Android Ndk,Gdbserver,Ndk Gdb,我最近加载了新的Android开发工具SDK 20130717和NDK r9 到目前为止,我有以前的版本,在我的两个系统(XP和W7/64)上都可以在Eclipse中正常工作和调试 现在,带有新工具的W7/64可以正常工作,并且在新工具安装和所需路径环境更改后可以调试我的应用程序 当我选择“调试为”+“Android本机应用程序”时,它工作正常 然而,XP虽然在文件夹/cygwin等方面有精确的配置,但在安装了新工具并更改了必要的路径env之后,它似乎无法启动ndk dbg和它;在“发布MyAp
native\u路径$GDBSETUP
大宗报价
嗯
据我所知,这在新的r9版本中是一个问题,特别是在名为
android-ndk-r9/toolchains/arm-linux-AndroidABI-4.6/prebuild/windows/bin/arm-linux-AndroidABI-gdb
此可执行文件给出分段错误
因此,在发行版中,它似乎从一开始就没有被正确生成,是由安卓开发者自己在安卓主站点上传的
我试着重新下载了r9发行版并重新安装,但同样的事情发生了,所以这不是偶然的,比如解压不好
我尝试了旧的r8e相同的文件,它没有给分割错误,它的工作正常
因此,我做了一些事情来证明我所说的概念,并获取了以前的版本文件(来自r8e)并覆盖了新的r9文件,然后再次尝试运行失败的ndk dbg和
…它起作用了
现在我有了一个新的R9NDK,但是有一个来自r8e的文件,旧的arm-linux-androideabi-gdb.exe,一切都很好
所以我想android开发者必须重新编译
->android-ndk-r9/toolschains/arm-linux-androideabi-4.6/prebuild/windows/bin/arm-linux-androideabi-gdb.exe
工具,这次正确
至少我希望有人会觉得这很有用,避免我一直以来的沮丧
Christos是在Android NDK上打开的。解决方法是使用Android NDK r8e中的arm linux AndroidAbi gdb.exe
(如Christos的回答所述),或下载修复程序