您的位置:首页 > 其它

Windows NDK 开发调试遇到问题及解决方

2014-12-23 20:12 316 查看
弄了好久,出了N多问题

网上有关windows NDK 开发的文章很多这里就不详细说明,紧针对可能遇到的问题进行总结。

一 Windows NDK环境搭建参考:
http://blog.csdn.net/android_panda/article/details/7607946 http://blog.csdn.net/pocoyoshamoo/article/details/23533923 http://blog.csdn.net/watkinsong/article/details/9849973
注意:选择Cywin安装包时必须安装:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包。

注意:配置Cywin 的bash_profile文件。

注意:如果无法正常下载相关软件如ADT、SDK、NDK等,可以参考这个网址,有很多你需要的下载资源:http://www.cnblogs.com/tc310/p/3938353.html。

二 NDK 开发注意事项

注意:在“Add Native Support”操作后,项目中会生成jni等文件夹,这个操作是不可逆的,如果手动删除了jni文件夹可能会导致项目错误。

注意:右键,选择项目属性(Properties),在C/C++ Build中设置Native Debug参数,如下图所示,Build Command
默认参数是:ndk-build,如果你想单步调试NDK C/C++代码,必须加上 NDM_DEBUG=1,‘=’号两边没有空格。





注意:编写完代码后,接下来调试程序,如果只调试Java程序,Debug中选择Android Application,如果想调试C/C++程序,Debug中选择 Android Native Application!

注意:真机环境十有八九调试不了C/C++程序,会报错误如下所示 the program is not being run。这个时候就要用模拟器调试。






注意:一定要确定模拟器或真机的CPU,可能是armeabi、armeabi-7va、x86、mips,那么我们的NDK程序只能是对应的一种,即在jni文件夹下的Application.mk中设置lib对应的CPU版本,APP_ABI:=
armeabi-v7a 或 APP_ABI:= armeabi。如果设置不对或设置了多个CPU版本,在调试的时候,可能会将错误的gdb传递过去,导致无法进入断点调试。

注意:NDK调试提示No
symbol table is loaded. Use the "file" command.

请参见:http://blog.csdn.net/a19860903/article/details/10500565

注意:其他设置没有问题,但是自己设置的断点就是无效,可能是断点在程序启动前设置的,你可以删除原来断点重新设置,就OK了。

注意:提示Unable to detect device compatibility. Please select a target device.APP_PLATFORM
** is larger than android:minSdkVersion 8.
Unable to detect application ABI's 错误。这是因为在AndroidManifest.xml中我们设置了minSdkVersion
为8,但是NDK编译平台(platform)最小的版本仍然大于8,所以需要在jni下的Application.mk中添加 APP_PLATFORM := android-8。

注意:如果你在C++中使用了vector 、queue等STL,需要在Application.mk中设置APP_STL属性,如上图所示,我在项目中使用了Vector,必须在Application.mk进行说明。可能有多个stl参数。






注意:当需要编译多个CPP或.c文件时,需要在LOCAL_SRC_FILES :中设置,不同文件用‘\’隔开,如:

LOCAL_SRC_FILES := Native_algorithm_NSPFA.cpp \ Native_algorithm_NFloyd.cpp
\ TNode.cpp



否则会在编译过程中找不到其他的文件,报错。

注意:调试的时候NDK可能会提示一些warning,大可不必理会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐