1、C语言logcat环境的搭建
- 1、在Android.mk文件里面添加LOCAL_LDLIBS += -llog
- 2、在c的代码中添加
#include <android/log.h>
#define LOG_TAG "System.out"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
LOGI("info\n");
LOGD("debug\n");
2、常见错误分析
- 1、乱码的错误
ndk r6以后的,可以c文件的将编码格式修改成utf-8,ndk r6以前的需要到java文件中调用字符串的编码格式转换方法
String str="XXXX";
str=new String(str.getBytes(), "UTF-8");
- 2、Error 1 错误
1-- 在Android.mk 出现了问题
2-- D:/workspace/Ndk_Ndk2/jni/Hello.c:11: error: parameter name omitted
参数名 不能为空
- 3、11-18 03:34:36.435: E/AndroidRuntime(431): Caused by: java.lang.UnsatisfiedLinkError: Hello
1-- java中方法的名称 和c中函数名称 不一致
2-- 检查链接库文件 有没有加载
- 4、绿色DEBUG
程序的库挂了 (存在严重逻辑性问题)
D:/AndroidWorkSpace/Ndk_HelloWorld/jni/Hello.c:3: error: expected '=', ',', ';',
'asm' or '__attribute__' before 'Java_cn_itcast_ndk1_MainActivity_helloFromJNI'
/cygdrive/d/AndroidWorkSpace/Ndk_HelloWorld
D:\AndroidWorkSpace\Ndk_Ndk2\bin\classes>javah cn.itcast.ndk2.MainActivity
3、Linux一些命令
- 1、pwd当前文件夹对应的目录
- 2、
- cd 跳转到指定文件夹
- cd /表示根目录下的文件夹
- cd ..返回上级目录
- 3、
- ls 显示当前目录下的所有文件(dos dir)
- ls -l 显示当前目录下的所有文件及其详细信息
- 4、./ 当前文件夹下的所有文件