问题“undefined reference to `android_log_print”的解决办法

刚开始在网上搜索了网上给的解决办法如下:

Android.mk文件内容:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := tunjni
LOCAL_SRC_FILES := JavaTun.c
LOCAL_LDLIBS    := -llog

include $(BUILD_SHARED_LIBRARY)

.c的头文件

#include <string.h> 
#include <jni.h> 
#include <android/log.h>`

然而,试过这些还是出现问题“undefined reference to `android_log_print”。后来,看了一份别人成功log的代码,才知道在build.gradle (Module: app)里也要做修改,修改完毕后总算可以了。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"



   sourceSets{ main{ jniLibs.srcDirs = ['libs'] } }//change 1

    defaultConfig {
        applicationId "com.example.sun.tunnel_4over6"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        ndk{//change 2
            moduleName "tunjni" 
            ldLibs "log"
            abiFilters "armeabi-v7a"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值