實現Android Studio JNI開發C/C++使用__android_log_print輸出Log
阿新 • • 發佈:2019-01-27
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");
}