Android Studio cmake和jni的一些坑
来源:互联网 发布:数据库表的增删改查 编辑:程序博客网 时间:2024/05/02 05:07
1.路径
修改前CMakeLists.txt动态库配置部分
add_library( avcodec-57 SHARED IMPORTED )set_target_properties( avcodec-57 PROPERTIES IMPORTED_LOCATION libs/armeabi/libavcodec-57.so )
执行后出错
Error while executing 'D:\Android\Sdk\cmake\3.6.3155560\bin\cmake.exe' with arguments {--build E:\MyApplication2\app\.externalNativeBuild\cmake\debug\armeabi --target native-lib}ninja: error: 'libs/armeabi/libavcodec-57.so', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi/libnative-lib.so', missing and no known rule to make it
在提示信息可以看出编译时的路径为
E:\MyApplication2\app\.externalNativeBuild\cmake\debug\armeabi
因此在CMakeList.txt中增加一个配置,即CMakeList.txt所在的目录
set(CURRENT_DIR ${CMAKE_SOURCE_DIR})//在Gradle Console输出信息//CMAKE_SOURCE_DIR: E:/MyApplication2/appmessage("CURRENT_DIR:" ${CMAKE_SOURCE_DIR})add_library( avcodec-57 SHARED IMPORTED )set_target_properties( avcodec-57 PROPERTIES IMPORTED_LOCATION ${CURRENT_DIR}/libs/armeabi/libavcodec-57.so )
2.使用cpp开发时的extern “C”
//file native-lib.cpp#include <jni.h>#include <string>//用extern "C"将C库的头文件和代码用{}括起来extern "C"{//ffmpeg使用c开发,所以头文件要用extern "C"声明#include "libavcodec/avcodec.h"jstringJava_com_jesure_myapplication_MainActivity_stringFromJNI( JNIEnv *env, jobject /* this */) { char info[10000] = {0}; sprintf(info, "%s\n", avcodec_configuration()); //cpp中的JNIEnv是一级指针,在c中是二级指针 //在c中下面语句写为 return (*env)->NewStringUTF(info); return env->NewStringUTF(info);}}
0 0
- Android Studio cmake和jni的一些坑
- android studio 2.2.2 关于JNI的初建报CMake错误
- android使用CMake进行jni编写遇到的一些问题
- Android Studio 2.0+ CMake进行JNI开发
- Android Studio使用CMake编译JNI初探
- Android JNI之青春期 Cmake(android studio)
- 关于android studio使用cmake 编写jni调用静态库、动态库的方式
- Android Studio JNI开发(1)------CMake编译原生库
- Android Studio JNI cmake 不能生成.so文件
- Android Studio cmake编译FFmpeg以及Jni调用
- android studio jni cmake(1) 创建新项目
- Android Studio 2.2 更方便地创建JNI项目-CMake
- Android Studio使用CMake构建脚本调用jni
- Android studio下Cmake配置编译开发jni总结
- Android Studio Opengl Cmake 配置 编译 jni c++ 调用opengl
- android studio 编写JNI时碰到的一些错误
- Android JNI的基本使用(CMake)
- android studio 和 eclipse jni的配置和编译
- c#面试题
- centos6.5Redis安装
- 2017Google Study Jams之1A对View和ViewGroup的认识
- jtable的批量删除
- 单例模式(Singleton)的6种实现
- Android Studio cmake和jni的一些坑
- Windows 10 下载、安装、破解 SolidWorks 2012 Sp5.0 软件 图文教程
- 一个对阅读、调试内核代码非常实用的函数 --- print_symbol
- 嵌入式linux web服务器
- 搭建dvwa环境来测试手工注入,让注入更清楚
- UVA
- 操作Checkbox标签
- MAC TensorFlow安装与更新
- pta 习题集5-19 列车厢调度