Android NDK 常见的问题及解决的方法

在ndk编译的过程中遇到的一些问题:

1 在用ndk-build编译的时候,被编译文件的路径中不能包含空格。如果包含有空格将会出现这样的错误信息:Android NDK:Your Android application project path contains spaces,这个时候自己检查下文件的路径中是不是包含有空格,一般问题多出现在文件夹的命名上面。

2 遇到错误之后常见的调试手段:

用ndk开开发应用出现问题是在所难免的,出现问题首先想到的就是尽快定位错误的地方,logcat查看信息是一个有效的手段,分为两种情况:

      1 java代码中:

 在java中可以采用log这个类,这个类包含在android.util中,在使用的时候要Import 头文件android.util.log,它又分为下面的这几个:

Log.v(String tag, String msg);     verbose
Log.d(String tag, String msg);    debug
Log.i(String tag, String msg);     information
Log.w(String tag, String msg);    warning
Log.e(String tag, String msg)    error

上面这些是用于在java文件中打调试信息,再用logcat查看

      2 c /c++ 代码中:

Android中ndk的开发是使用的c/c++和java混编的,一旦问题出现在我们的xxx.so中的话,上面讲到的那几种方法就失效了,这个时候就需要使用__android_log_write,这是android ndk中支持的调试方式,总共有四种形式:具体的参见:android_source_code/prebuilt/ndk/android-ndk-r4/platforms/android-8/arch-unicore32/usr/include/android

上面所说的方法需要在Android.mk中显式的将liblog.so添加进来,一般的默认的是不包含的。即在Android.mk中添加这句话:

LOCAL_LDLIBS := -lGLESv1_CM -ldl-L$(SYSROOT)/usr/lib –llog

3 要十分注意java代码和c /c++ 代码glue(胶合)的部分:

这一部分常见的问题是load_library中的动态库的名字要和Android.mk中的对应,二是jni有一定的命名规则,要格外注意函数名称的对应。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值