"android-studio undefined reference to `__android_log_print "错误解决方法
来源:互联网 发布:笑气淘宝下架 编辑:程序博客网 时间:2024/05/16 01:01
转自http://blog.chinaunix.net/uid-20680966-id-4961553.html
最近在使用android studio编译安卓程序,要用到jni
我在jni源码中引用了__android_log_print ,且在Android.mk中加了LOCAL_LDLIBS := -llog但是编译时还是会出现如下错误:
Error:(82) undefined reference to `__android_log_print'原因:
默认情况下,存在src/main/jni文件夹时,gradle生成脚本会执行ndk编译生成操作,但是,编译生成方式并不是像以前那样用ndk-build去处理Android.mk Application.mk等
进行c/c++代码的编译链接,而是在临时文件路径中重新生成了一份新的mk文件,并以此作为ndk编译项目,所以会导致log库没有被正常链接进去,导致找不到定义。
解决方法:
通过在app目录下的build.gradle中
android {
加入配置: (注意是加在android {}之中)
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/libs'
}
的方式来屏蔽掉默认的jni编译生成过程,这样执行gradle生成时就不会再处理jni中的原生代码,而由手动调用ndk-build方式去生成so动态链接库,同时下面的jniLibs.srcDir重定位生成库文件夹为ndk-build默认生成的libs文件夹(这个默认是src/main/jniLibs,当然是默认生成jni脚本执行成功的话,如果想保留不变的话也可以修改一下手动执行ndk-build时的生成路径),这时再调试运行就可以正确的嵌入native库文件执行了。
进入jni目录,手动运行ndk-build
如果要自动进行ndk-build,在加上面配置的基础上(注意可加在最后面,不能在android {}之中)
在build.gradle后面加上
task ndkBuild(type: Exec) {
commandLine 'ndk-build', '-C', file('src/main/jni').absolutePath
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
作者:帅得不敢出门 程序员群:31843264
0 0
- "android-studio undefined reference to `__android_log_print "错误解决方法
- Android Studio 下安卓 jni 开发错误 undefined reference to __android_log_print
- android-studio undefined reference to `__android_log_print
- android studio undefined reference to `__android_log_print'
- 使用android studio 报错 undefined reference to '__android_log_print'
- 使用android studio JNI报错 undefined reference to '__android_log_print'
- undefined reference to `__android_log_print'
- undefined reference to `__android_log_print'
- undefined reference to __android_log_print
- undefined reference to `__android_log_print'
- undefined reference to `__android_log_print'解决
- undefined reference to `__android_log_print'解决
- undefined reference to `__android_log_print'解决
- error undefined reference to '__android_log_print'
- undefined reference to `__android_log_print'解决
- undefined reference to `__android_log_print'解决
- undefined reference to `__android_log_print'解决
- Android studio中JNI-NDK开发打印LOG出现 undefined reference to `__android_log_print' 解决
- ubuntu 13.04安装
- struts2标签引用自己的方法
- Swift中fallthrough的使用
- Android实现计时与倒计时(限时抢购)的几种方法
- FMDB的增删改查出操作
- "android-studio undefined reference to `__android_log_print "错误解决方法
- hadoop起步之环境安装2
- jQuery源码分析4
- 判断view是否可见
- 抽象工厂模式【Abstract Factory Pattern 】
- IM类app业务模块功能接口定义(二)
- ffmpeg 安装libx264 失败
- webview的几种用法
- Android init.rc 文件支持的命令