Android 导入项目时遇到的JNI和NDK问题

本文介绍了在使用Android Studio导入含有C/C++代码的项目时,遇到的关于JNI问题的解决方案。针对“undefined reference to `__android_log_print`”错误,通过在Android.mk文件中添加ldLibslog配置来解决。

android studio在导入一些调用C/C++的android项目时,会遇到有关JNI的问题,例如导入下面这个项目

https://github.com/handheldgroup/android-serialport-api

会遇到这样的问题

Error:(12, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

这个问题的解决办法在这

http://stackoverflow.com/questions/31979965/after-updating-android-studio-to-version-1-3-0-i-am-getting-ndk-integration-is

按照上面完成之后可以编译通过了,但是run一下会出现下面的问题

Error:(97) undefined reference to `__android_log_print'

网上各种找资料,试了很多方法之后都没用,最后用这个里面的第三个回答解决了

http://stackoverflow.com/questions/4455941/undefined-reference-to-android-log-print

回答里面的前两种我也试了,都不行,第三种修改Android.mk

android {
    defaultConfig {
        ndk {
            moduleName "your_module_name"
            ldLibs "log"//添加这一句代码就可以了
        }
    }
}

就可以跑起来了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值