Android Studio引入.so文件的正确姿势 以及调用.so 文件时报错has text relocations 解决
首先在src同级目录下创建libs目录讲需要的.so复制到这里效果如图
然后在app级别的build.gradle配置lib路径,效果如果
完整代码如下:
apply plugin: 'com.android.application'android {compileSdkVersion 24buildToolsVersion "25.0.1"defaultConfig {applicationId "com.liberation.idcarread"minSdkVersion 15targetSdkVersion 24versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {destinationDir file("$projectDir/libs")baseName "Native_Libs2"extension "jar"from fileTree(dir: "libs", include: "**/*.so")into "lib"}tasks.withType(JavaCompile) {compileTask -> compileTask.dependsOn(nativeLibsToJar)}sourceSets {main {jniLibs.srcDirs = ['libs']}}
}dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {exclude group: 'com.android.support', module: 'support-annotations'})compile 'com.android.support:appcompat-v7:24.2.1'testCompile 'junit:junit:4.12'
}
至此配置完成点击sync即可正常使用。编译运行过程遇到*.so: has text relocations 说明编译.so文件时使用了较低版本sdk 版本 此时降低build.gradle的targetSdkVersion 版本为22以及以下即可 我们这里改为22 最终效果如下
运行时又出现一个异常
**java.lang.UnsatisfiedLinkError: No implementation found for int com.liberation.idcarread.ivsign.IDCReaderSDK.wltInit(java.lang.String) (tried Java_com_liberation_idcarread_ivsign_IDCReaderSDK_wltInit and Java_com_liberation_idcarread_ivsign_IDCReaderSDK_wltInit__Ljava_lang_String_2)**
解决方法:按照官方Demo放好包名路径。包名一定要跟原来的一模一样负责无法调用!
Android Studio引入.so文件的正确姿势 以及调用.so 文件时报错has text relocations 解决相关推荐
- Nuxt 项目引入外部Js的正确姿势 ,问题描述:打包构建之后引入的外部 js失效,构建之后的 .nuxt 文件夹下的js文件中,引入 js 的script标签凭空消失!
首先先说我遇到的问题描述: 我是用vue + nuxt项目,项目中使用了阿里播放器,于是我在vue页面中直接引入了阿里播放器的 css和js文件,然后运行没有任何问题:如下图所示: 但是! ...
- Android SELinux开发入门指南之正确姿势解决访问data目录权限问题
Android SELinux开发入门指南之正确姿势解决访问data目录权限问题 Android SELinux开发多场景实战指南目录: Android SELinux开发入门指南之SELinux ...
- Android LinearLayout添加间隔(Divider)的正确姿势
最优解 2022年03月31日20:50:54更新 Android (2022 xml版)LinearLayout添加间隔(Divider)的正确姿势 这里用inset的方式在xml里进行了解决.各取 ...
- android 矢量图形文件,Android Studio进行APP设计开发之矢量图及XML文件转换
Android Studio进行APP设计开发之矢量图及XML文件转换 当我们使用Android studio进行APP设计开发时,会用到矢量图,那么要将矢量图运用到安卓工程drawable中去,就需 ...
- 删除文件的正确姿势-Linux权限探索
删除文件的正确姿势 在Linux系统中,要删除一个文件,到底需要用户拥有怎样的权限呢?这里做一个小小的探究. 首先用普通用户登录,在文件夹my下创建出mydir文件夹并进入,然后创建一个文件file ...
- Android Studio进行APP设计开发之矢量图及XML文件转换
Android Studio进行APP设计开发之矢量图及XML文件转换 当我们使用Android studio进行APP设计开发时,会用到矢量图,那么要将矢量图运用到安卓工程drawable中去,就需 ...
- android markdown 框架,Android Studio MarkDown风格README的正确打开姿势
万事开头难,这是我的第一篇简书,讲一讲我是怎么在AS上安装MarkDown编辑器插件的. 前言 其实吧刚开始我并没有觉得AS自带的文本编辑器有什么不好,README文件也就是记录一些相关信息,也没想着 ...
- android 引入 .so,android studio引入so库方法(示例代码)
在Android Studio中引入so库,只需在app/jniLibs下放入so文件,然后在Module的build.gradle中加入: sourceSets { main { jniLibs.s ...
- android studio引入lib,Android studio项目引入另外一个项目做为Lib
Android studio项目引入另外一个项目做为Libary 方法一:使用Android studio 导入lib项目: 注意: lib项目更改处:html 在build.gradle 文件下 将 ...
最新文章
- 今后军队将完全人工智能化?停止幻想!大趋势和大方向不容改变
- C++知识点7——函数传参
- 1.2 Java系统流
- java对象序列化克隆_Java8基础知识(三)对象克隆与序列化
- 5-9 c语言之【初识win32编程】
- Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析
- React学习笔记一 JSX语法组件
- hbase 导入到es_HBase数据同步到ElasticSearch的方案
- android搜狗输入法广告,Android 搜狗输入法 v8.12 去广告纯净版
- 云计算之存储即服务 - 存储区域网络(SAN)
- 双屏怎么快速切换鼠标_Win7系统如何设置一键快速切换双屏显示(图文)
- linux oel7没有网络,sudo su命令不在OEL 7中工作(sudo su command not working in OEL 7)
- 免费后台管理UI界面、html源码推荐
- 数组的降维与升维方法
- python图片比对、自动化测试_基于python+appium通过图片对比来做的UI自动化
- 本地事务与分布式事务
- 程序员就业3年,月薪才2万,很丢人吗?
- 安装CUDA-10.0
- 在Elasticsearch使用URI花式搜索
- 微信小程序毕业论文题目_SSM项目源码校园辩论管理平台+后台管理系统