Android Studio 下安卓 jni 开发错误 undefined reference to __android_log_print

jni


最近要搞安卓下串口的读写,需要用到 jni,然后遇到了这个问题,坑挺多。

串口读写参考文章:Android串口操作,简化android-serialport-api的demo(附源码)

我把这个源码导入了 android studio,上传到 github:AndroidSerialPort

jni 开发参考文章:【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通

还有个极客学院的:JNI 开发流程

跳坑


这个问题就是导入 android studio 后遇到的,错误如下:

1
undefined reference to __android_log_print

该函数在 ndk 目录中文件 **\ndk-bundle\platforms\android-24\arch-arm\usr\include\android\log.h 里,我的代码里包含了该头文件。

Android.mk 文件内容是这样的:

1
2
3
4
5
6
7
8
9
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := serial_port
LOCAL_SRC_FILES := SerialPort.c
LOCAL_LDLIBS    := -llog

include $(BUILD_SHARED_LIBRARY)

google 了下,有如下解决方法:

1 修改 Android.mk 文件相关:

1
LOCAL_LDLIBS := -llog

而我的本来就是这个样子啊,失败

2 修改 Android.mk 文件:

1
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

问题依旧~~~

3 如果使用 android studio,需要修改 gradle 脚本:

1
2
3
4
5
6
7
8
android {
    defaultConfig {
        ndk {
            moduleName "serial_port"
            ldLibs "log"
        }
    }
}

也就是添加了一句:ldLibs "log"

这个解决了我的问题。

详细代码我传到了 github:AndroidSerialPort

其实,用 Android Studio 开发 jni,不需要 Android.mk 文件,只要配置好 gradle 就可以了。今天遇到同样的问题,来这里看看吧:Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo

分享是一种美德,更是一种生活方式!!

也许你会说我是一个梦想者,但我不是唯一的一个。

悦分享,越快乐^_^

欢迎交流,转载请注明出处,谢谢!


转自 http://jp1017.github.io/2016/03/15/Android%20Studio%20%E4%B8%8B%E5%AE%89%E5%8D%93-jni-%E5%BC%80%E5%8F%91%E9%94%99%E8%AF%AF-undefined-reference-to-android-log-print/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值