Android studio Jni调用第三方库(CMakelist)
来源:互联网 发布:软件语言翻译器 编辑:程序博客网 时间:2024/05/18 15:04
Jni项目生成的库文件需要调用硬件给的c++编写的so库,拿到so库跟头文件,jni通过CMakelist方式怎么调用c++写的so文件。。。
首先,创建项目,勾选support c/c++选项
接下来,就是配置CMakeList.text文件:
下面附上CMakeList的详细代码:
# Sets the minimum version of CMake required to build the native# library. You should either keep the default value or only pass a# value of 3.4.0 or lower.cmake_minimum_required(VERSION 3.4.1)#引用已经有的库find_library( # Sets the name of the path variable. log-lib # Specifies the name of the NDK library that # you want CMake to locate. log )#资源文件夹的位置libsset(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../libs)#导入类库,只是作为引用,不编译add_library( first SHARED IMPORTED )#引用目标类库是本地类库位置在libs/armeabi-v7a/xxx.soset_target_properties( first PROPERTIES IMPORTED_LOCATION ../../../../libs/armeabi-v7a/libfirst.so )#添加类库位置在src/main/cpp/xxx.cpp需要编译add_library(native-lib SHARED src/main/cpp/native-lib.cpp )#引入头文件目录位置include_directories(libs/jpeg)#将预构建库与你本地库相关联target_link_libraries( # Specifies the target library. native-lib first # Links the target library to the log library # included in the NDK. ${log-lib} )
然后点击MakeProject:
这时,如果没出什么意外的话,我们可以在 t\app\build\intermediates\cmake\debug\obj 下查看到生成的so文件
我们的Android项目即可调用此库做相应的操作了
但是要注意一点,因为我们的libnative-lib.so是依赖libfirst.so生成的,所以我们调用的时候需要将两个库都加载进去,不然会报错
public class MainActivity extends AppCompatActivity { // Used to load the 'native-lib' library on application startup. static { System.loadLibrary("first"); System.loadLibrary("native-lib"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Example of a call to a native method TextView tv = (TextView) findViewById(R.id.sample_text); tv.setText(helloString("hi kathy")); } /** * A native method that is implemented by the 'native-lib' native library, * which is packaged with this application. */ public native String stringFromJNI(); public native String helloString(String hello);}
效果如图:
ok,that is all
不懂的可以下载相应的demo自行查看
有关其他的jni问题可以提出来相互讨论,刚刚接触,共同学习,共同进步
thanks~
DEMO下载:http://download.csdn.net/download/qq_35532751/10138080
阅读全文
0 0
- Android studio Jni调用第三方库(CMakelist)
- android JNI 调用第三方动态库
- Android-jni 调用第三方动态库
- Android.mk JNI 调用第三方库
- Android studio jni内调用第三方so
- Android studio jni内调用第三方so
- g++编译动态库。测试java jni调用第三方动态库。[android studio IDE]
- Android Studio调用第三方动态库
- Android Studio中使用JNI和第三方.so库
- android JNI学习之二 调用第三方动态库
- android jni开发 调用 第三方 动态链接库
- Android平台下JNI调用第三方so库
- Android平台下JNI调用第三方so库
- Android平台下JNI调用第三方so库
- Android平台下JNI调用第三方so库
- Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题
- Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题 .
- 关于JNI调用第三方静态库
- java读取Excel中的数据
- spring自定义标签aop实现
- linux0.11内核完全剖析- sched.c
- Highways POJ
- 2__现代和弦
- Android studio Jni调用第三方库(CMakelist)
- Android .9图片
- 独家 | 对赌?商汤徐冰:大牌投资人排队想投,没有任何条件可谈
- kibana使用入门
- 战斗民族的Yandex开始首次雪地无人车路测 | 视频
- 关于如何求分数的最小公倍数和最大公约数
- 清华成北京赛赢家,旷视唐文斌分享本质创业 | 联想高校AI精英挑战赛
- mac解压ndk.bin文件
- 汉诺塔(一)(快速幂)