android:can not find libdevapi.so

news2024/11/19 22:14:39

一、为什么会出现这样的报错?

引用了一些第三方的sdk的so库之后通常都会遇到这样的错误,(“nativeLibraryDirectories=”[/data/app/com.lukouapp-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libxxxx.so")。

手机的机型不同,so库开发公司也各不相同,有的so库兼容各种机型,兼容android api 17~28,有的so库只支持api>21 ,下面分情况总结:

1.android系统支持七种不同的cpu架构:ARMv5(armeabi.so),ARMv7(从2010年起)(armeabi-v7a.so),x86 (从2011年起)(x86.so),MIPS (从2012年起)(mips.so),ARMv8(arm64-v8.so,高端机),MIPS64(mips64.so)和x86_64(x86_64.so) (从2014年起),每一种都关联着一个相应的ABI(Application Binary Interface应用二进制接口=编译好的二进制so库文件)

【armeabi,armeabi-v7a,x86,mips,arm64-v8a(64位设备),mips6464位设备),x86_6464位设备)这些都是指令集的统称】

mips和mips_64:MIPS架构是一种高性能的嵌入式CPU构架,其出发点是高性能,主要用于路由器、猫等

X86(32位),x86_64(64位)(该芯片由美国intel英特尔公司生产) 该构架的处理器已经广泛运用在PC领域,

armeabi,armeabi-v7a,arm64-v8a(都采用ARM架构,该芯片由英国ARM公司生产)全世界超过95%的智能手机和平板电脑都采用ARM架构,大部分android手机都是ARM架构的

二、解决办法:

 所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,armeabi-v7a 向下兼容 armeabi (大部分机器都属于armeabi-v7a),所以为减少apk的大小,一般一个armeabi-v7a.so就够了。第三方的sdk,提供了多少so库 ,你最好将它提供的都拷贝到项目中。
 

android 最好放在main/jniLibs(main下面没有jniLibs,就自己建一个)目录下,这样一般不会出问题,不建议自己指定ABI的路径。

so库文件里面大都是c/c++编写的代码,他们暴露原生native接口时需要指定应用的包名,故有些so库文件需要应用的包名要与so库开发商给出的包名一致,【这一点开发商给的文档里一般都会说明,文档里没有,则可以忽略这个因素】

有的so库支持android api 17~28,有的so库只支持api>21的(如虹软的ArcFace的sdk的so库),当api较低的手机遇到这种情况时,最好拿api较高的,或别的手机测试一下,也可咨询一下开发商,该so库文件支持的手机api的版本

如果将so库文件放在libs下,则需要在build.gradle中的android节点下面配置如下代码

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

三、总结:

有些文件是要存放在libs和jniLibs中的这两个文件不是自动生成的要自己手动创建。

还有jniLibs中的这三个文件

希望可以帮到你。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1081404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zookeeper节点数据类型介绍及集群搭建

一、zookeeper介绍 zookeeper官网:Apache ZooKeeper zookeeper是一个分布式协调框架,保证的是CP,即一致性和分区容错性;zookeeper是一个分布式文件存储系统,文件节点可以存储数据,监听子文件节点等可以实…

绥化市中心广场焕发新活力:OLED透明拼接屏的奇观展示

OLED透明拼接屏技术在绥化城市的应用引起了广泛关注。 绥化市位于中国东北地区,是黑龙江省的一个重要城市。 该市拥有悠久的历史,历经多个朝代的兴衰。绥化的历史背景赋予了这座城市独特的文化底蕴和魅力。 绥化市内有许多著名景点,其中最…

day

#include <iostream> using namespace std; class Per {//算术运算符friend const Per operator(const Per &k1,const Per &k2);friend const Per operator-(const Per &k1,const Per &k2);friend const Per operator*(const Per &k1,const Per &…

vue项目npm intall时发生版本冲突的解决办法

在日常使用命令npm install / npm install XX下载依赖的操作中&#xff0c;我经常会遇到无法解析依赖树的问题&#xff08;依赖冲突&#xff09; 当遇到这种情况的时候&#xff0c;可以通过以下命令完成依赖安装&#xff1a; npm install --legacy-peer-deps npm install xxx…

国产化即时通讯平台WorkPlus,助力企业实现自主可控的沟通与协作

作为在线沟通与协作的重要工具&#xff0c;即时通讯平台在企业中扮演着不可或缺的角色。然而&#xff0c;为了保护企业的核心数据和机密信息&#xff0c;越来越多的企业开始转向国产化的即时通讯平台。在这一背景下&#xff0c;国内软件品牌WorkPlus应运而生&#xff0c;为企业…

基于 chinese-roberta-wwm-ext 微调训练中文命名实体识别任务

一、模型和数据集介绍 1.1 预训练模型 chinese-roberta-wwm-ext 是基于 RoBERTa 架构下开发&#xff0c;其中 wwm 代表 Whole Word Masking&#xff0c;即对整个词进行掩码处理&#xff0c;通过这种方式&#xff0c;模型能够更好地理解上下文和语义关联&#xff0c;提高中文文…

mongodb简介、安装、搭建复制集

一、 简介 NoSQL数据库四大家族&#xff1a;列存储 Hbase&#xff0c;键值(Key-Value)存储 Redis&#xff0c;图像存储 Neo4j&#xff0c;基于分布式文档存储的数据库MongoDb。 MongoDB 和关系型数据库对比 关系型数据库MongoDBdatabase&#xff08;库&#xff09;database&…

.net也能写内存挂

最近在研究.net的内存挂。 写了很久的c,发现c#写出来的东西实在太香。 折腾c#外挂已经有很长时间了。都是用socket和c配合。 这个模式其实蛮成功的&#xff0c;用rpc调用的方式加上c#的天生await 非常好写逻辑 类似这样 最近想换个口味。注入托管dll到非托管进程 这样做只…

基于 SOFAJRaft 实现注册中心

文章目录 1.前言2.git 示例地址3.官网示例分析3.SOFAJRAFT 注册中心实现&#xff08;服务端&#xff09;3.1 核心功能3.2 模块设计3.3 请求消息数据结构设计3.3.1 Registration 注册消息3.3.2 GetServiceInstancesRequest 获取服务实例请求3.3.3 GetServiceInstancesResponse 获…

Android中级——ListView和RecycleView解析

ListView和RecycleView ListViewRecycleView ListView 使用步骤可看Android基础——ListView&#xff0c;其setAdapter()如下&#xff0c;回调getCount()获取Item个数 Override public void setAdapter(ListAdapter adapter) {if (mAdapter ! null && mDataSetObserv…

v-model绑定input、textarea、checkbox、radio、select

1.input <div><!-- v-model绑定input --><input type"text" v-model"message"><h2>{{message}}</h2></div><script>const App{template:#my-app,data() {return {message:Hello World,}},}Vue.createApp(App).…

Java:设计模式之结构型-装饰者模式(decorator pattern)

装饰者模式(decorator pattern): 动态地将责任附加到对象上 意图&#xff1a;为对象动态添加功能 类图 实现 设计不同种类的饮料&#xff0c;饮料可以添加配料&#xff0c;比如可以添加牛奶&#xff0c;并且支持动态添加新配料。每增加一种配料&#xff0c;该饮料的价格就…

微信怎么查看名下所有微信号?

一般大家都会有两个或者更多的微信号&#xff0c;那怎么知道自己名下有几个微信号呢&#xff1f; 微信号要使用支付或者其他一些功能是要实名才可以使用的&#xff0c;有时候不知道自己的名下绑定了多少微信号&#xff0c;怎么查询呢&#xff1f; 微信最近出了开通小号的功能&…

当下测试行业中UI自动化面临的难点及如何解决

经常有人会问&#xff0c;什么样的项目才适合进行UI自动化测试呢&#xff1f;UI自动化测试相当于模拟手工测试&#xff0c;通过程序去操作页面上的控件。而在实际测试过程中&#xff0c;经常会遇到无法找到控件&#xff0c;或者因控件定义变更而带来的维护成本等问题。 哪些场…

Python数组添加元素append的时间复杂度分析

由于数组需要连续的存储空间&#xff0c;append&#xff08;&#xff09;函数的时间复杂度可能为1也可能为n&#xff0c;主要看在后面添加元素时&#xff0c;当前位置是否可以添加&#xff0c;有位置可以添加的话&#xff0c;则直接在后面添加&#xff0c;此时时间复杂度为1&am…

工学云打卡签到自动完成在异地的问题就解决了|蘑菇钉

工学云打卡助手&#xff0c;能解决你在异地时每天不间断签到的问题&#xff0c;仔细看图哦 1.自动签到 2.自定义打卡地区 3.生成日周月报与总结自动发表 4.支持随机通用内容 5.支持打卡结果推送 对于许多即将步入职场的新人来说&#xff0c;实习是一个非常重要的阶段。实习…

【算法挨揍日记】day13—— DP34 【模板】前缀和、DP35 【模板】二维前缀和

DP34 【模板】前缀和 【模板】前缀和_牛客题霸_牛客网 题目描述&#xff1a; 给定一个长度为n的数组. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出 输入描述: 第一行包含两个整数n和q.第二行包含n个整数, 表示.接下来q行,每行包含两个整数 l和r. …

聊聊Android签名检测7种核心检测方案详解

聊聊Android签名检测总结与反思 背景&#xff1a; 这篇文章只讲Android端签名检测&#xff0c;安卓发展到现在&#xff0c;因为国内环境没有谷歌市场&#xff0c;所以很多官方推荐的Api没法使用 &#xff0c;所以国内的签名检测方式也是“千奇百怪” 。发展至今每种方法都有一…

智安网络|揭开云服务的神秘面纱:其含义和功能的综合指南

随着信息技术的不断发展&#xff0c;云服务已经成为了我们生活中的一个不可或缺的部分。无论是在个人生活中还是在商业领域&#xff0c;云服务都具有广泛的应用。 什么是云服务&#xff1f; 云服务是一种基于互联网的计算和存储资源提供方式&#xff0c;它允许用户通过互联网访…

CTF Misc(3)流量分析基础以及原理

前言 流量分析在ctf比赛中也是常见的题目&#xff0c;参赛者通常会收到一个网络数据包的数据集&#xff0c;这些数据包记录了网络通信的内容和细节。参赛者的任务是通过分析这些数据包&#xff0c;识别出有用的信息&#xff0c;例如登录凭据、加密算法、漏洞利用等等 工具安装…