相信很多人在刚开始学习Android JNI编程的时候,需要输出Log,在百度Google搜索的时候都是说需要在Android.mk中加入LOCAL_LDLIBS+= -L$(SYSROOT)/usr/lib -llog ,其实这是在eclipse开发上的方式,Android Studio并不是这么使用。

Android Studio的Android.mk是自动生成的,就算修改也是没用了,实际Android Studio的Android.mk是根据gradle文件生成的,那么就需要修改gradle文件。

如果不修改gradle,直接使用__android_log_print就会报错

Error:(36) undefined reference to '__android_log_print'

现在只需要在jni Module中得build.gradle 添加一些代码即可实现输出Log

build.gradle文件完成代码

apply plugin: 'com.android.library'android {    compileSdkVersion 21    buildToolsVersion "21.1.2"    defaultConfig {        minSdkVersion 14        targetSdkVersion 21        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            ndk {                moduleName "moduleName"                ldLibs "log"//实现__android_log_print                abiFilters "armeabi", "armeabi-v7a", "x86"            }        }    }    productFlavors {    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:support-v13:21.0.3'}
ldLibs "log" 是关键代码
#include <string.h>#include <android/log.h>#include <jni.h>#include <stdio.h>#define  LOG_TAG    "native-dev"#define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)#define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)#define LOGI(...)  __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)void testlog(){    LOGI("test");}

更多相关文章

  1. Android中使用SAX方式解析XML文件
  2. 向eclipse中导入android中的sample样例+gen目录缺少R.java文件
  3. android通过代码来开启和关闭移动网络
  4. [android][利用JNI技术在Android中调用、调试C++代码]

随机推荐

  1. Android(安卓)7.1.2(Android(安卓)N) And
  2. android程序在Layout中设置控件水平或垂
  3. Android(安卓)控件常用属性
  4. android 程序分享。。
  5. android 布局文件详解
  6. Android(安卓)7.1 去掉桌面上的谷歌搜索
  7. Android安装
  8. [Android(安卓)UI] listview 自定义style
  9. android 塔防游戏汇总 及android 游戏开
  10. JAVA & Android(安卓)系统环境变量配置