NDK 调用so包以及找不到类出错。

CMakeList编译报错ninja: error: missing and no known rule to make it解决方法 Android NDK开发引用第三方库CMakeList.txt编译报错: ninja: error: '/XXX/NDKApplication/app/src/main/cpp/src/main/cpp/armeabi-v7a/libavcodec.so', needed by '/XXX/NDKApplication/app/build/intermediates/cmake/debug/obj/armeabi-v7a/libhf_code.so', missing and no known ru 阅读详情

1.首先看一下最常见的出错,找不到so包。

出错代码:

Build command failed.
Error while executing process D:\androidsdk\android-sdk-windows\cmake\3.6.4111459\bin\cmake.exe with arguments {--build F:\TestHello\app\.externalNativeBuild\cmake\debug\armeabi-v7a --target native-lib}

ninja: error: '../../../../src/jniLibs/armeabi-v7a/libhello.so', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so', missing and no known rule to make it

这种错误,就一般是动态加载so包路径不对导致的。

出错位置在 set_target_properties这个地方 ,配合add_library使用。

解决办法:修改路径,对照加入的so包的位置,看so包是放在libs目录下,还是jniLibs目录下。

写法参考https://blog.youkuaiyun.com/SXH_Android/article/details/80662930


未完 待续。



实战指南:在 Android NDK 中集成 OLLVM 实现 so 代码混淆 本文提供了一份详细的实战指南,指导开发者如何在Android NDK环境中集成OLLVM,以实现对so库的代码混淆。文章深入剖析了LLVM、NDK与OLLVM的关系,并逐步讲解了从获取匹配版本的LLVM源码、编译集成OLLVM、替换NDK工具链到在Android Studio项目中配置使用的完整流程,旨在帮助开发者有效保护Native层核心代码,防止逆向分析。 阅读详情

相关推荐

Unity调用Android NDK动态库:从原理到实战的完整指南

在移动应用和游戏开发中,跨语言调用与原生性能优化是核心技术挑战。JNI(Java Native Interface)作为Java生态的标准桥梁,实现了Java虚拟机与C/C++原生代码的高效通信,其原理是通过严格的函数命名和参数传递规范,在运行时动态链接共享库。这项技术的核心价值在于突破高级语言(如C#)的性能瓶颈,直接利用底层硬件能力,同时复用成熟的C/C++算法库。在Unity游戏开发中,通过AndroidJavaClass和JNI桥接,开发者能够将计算密集型任务(如图像处理、传感器访问)委托给编译好的

weixin_30411819的博客 419

missing and no known rule to make it

AS编译出错 Build command failed. Error while executing process C:\Users\hl\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {–build F:\AndroidStudioProjects\LongScreenShot\app.ext...

ALakers的博客 5386

【我的Android进阶之旅】如何在Android Studio开发NDK的时候,通过addr2line或者ndk-stack来定位出错代码的位置

一、错误描述 有时候在开发NDK的时候,会出现一些native的crash,直接闪退。但是又不知道如何定位到底是cpp哪一行代码出错了。这里介绍下如何通过addr2line来定位出错代码的位置。 1.1 写一段有错误代码 出错代码如下: 80行 // 故意制造出crash:除零异常 81行 int i=0; 82行 int j=1; 83行 int crash=j/i; 84行 LOGD("crash = %d",crash) 1.2 运行程序,查看错误日志 运行就闪退,错误

字节卷动 4696

Android 5.1 内置应用失败

平台 RK3288 + Android 5.1 问题 内置应用失败, 编译LOG如下: PRODUCT_COPY_FILES vendor/rockchip/common/nand/modules/arm/rk30xxnand_ko.ko.3.10.0:root/rk30xxnand_ko.ko.3.10.0 ignored. target Prebuilt: PrebuildApk (out...

ansondroider的博客 2569

Android Studio NDK 使用Cmake指定输出路径和生成多个so案例

cmake 指定输出路径和生成多个so案例 文章: http://blog.youkuaiyun.com/b2259909/article/details/58591898

AI写作:为AI人工智能领域赋能

AI写作技术作为自然语言处理(NLP)领域的重要应用方向,正在深刻改变内容创作的方式。系统介绍AI写作的技术原理分析主流AI写作模型的架构特点提供实践性的代码示例探讨实际应用中的关键问题展望未来发展趋势本文涵盖从基础理论到高级应用的完整知识体系,适用于希望深入了解AI写作技术的开发者和研究人员。背景介绍:建立基本概念框架核心概念:解析关键技术原理算法实现:通过代码演示具体实现数学原理:深入底层数学模型实践应用:展示真实场景案例资源推荐:提供学习路径和工具。

AI天才研究院 3052

linux 编译v8,编译及嵌入v8遇到的错误汇总

利用v8的最新分支编译成静态库,然后在AS里面gradle打包,CMake构建时出现下面错误:Build command failed.Error while executing process /usr/local/v8/v8/third_party/android_tools/sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /mn...

weixin_28704565的博客 1190

分析攻击流量样本

利用wireshark分析.pcap攻击样本的攻击流程,利用漏洞等。

一段旅途 6842

error: undefined reference to

在做JNI开发时,对C/C++写的libKF.so进行JNI封装成libkftest.so时,遇到以下问题: Build command failed. Error while executing process D:\Android\sdk\cmake\3.10.2.4988404\bin\ninja.exe with arguments {-C D:\project\SDK\app\.cxx\cmake\debug\armeabi-v7a kftest} ninja: Entering dire

HelloWorld的专栏 3057

使用electron静默打印

使用electron静默打印 1.使用electron打印的理由 很多情况下程序中使用的打印都是用户无感知的。并且想要灵活的控制打印内容,往往需要借助打印机给我们提供的api再进行开发,这种开发方式非常繁琐,并且开发难度较大。 electron提供的打印api可以非常灵活的控制打印设置的显示,并且可以通过html来书写打印内容。 2.api ele...

w1366352655的博客 945

DisplayPort信号通道深度解析:从物理层到协议栈

DisplayPort(DP)是一种面向高速串行通信的数字显示接口标准,其核心在于嵌入式时钟、自适应均衡与链路训练三位一体的物理层架构。不同于HDMI依赖独立时钟的TMDS方案,DP通过差分主链路(Main Link)承载编码数据流,以8b/10b或128b/132b编码实现高带宽与强鲁棒性。该技术价值体现在多速率自适应、误码恢复能力及对PCB布线与阻抗控制的严苛要求,广泛应用于8K显示、工业视觉、GPU直连等高性能场景。本文聚焦DP信号通道的管脚级实现、三层协议解耦(物理层/数据链路层/事务层)及链路训练

weixin_34214500的博客 253

ndk-build编译问题之找不到-lXXX

在用ndk-build编译so文件时,有时会提示找不到某个-lXXX(比如,-lopenal,-legal等等,这一般是我们引用的模块化的功能类库,在你的项目中能找到)。 比如提示:cannot find -lopenal 但是查看ndk-build的编译日志,其中有openal完整译日 志,并且没有出错,输出了 说明openal模块编译成功了。并成功生成了libopenal.so,

Katichar 3227

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1478

NDK调用第三方so共享库

这两天被一个问题所困扰。其他公司提供的三方so如何调用的问题(只提供了so和.h头文件),他们的so不符合JNI的标准,从提供的.h头文件信息中无法调用so中方法。 《一》首先我们看下:Android NDK标准: 1.定义本地的native方法 private native int pinpanOpen(String dev);  2.使用javah工具生成.

tangjiean的专栏 3614

Error: Flash Download failed - Target DLL has been cancelled

由于换了新电脑,keil重装了下,然而之前的MCU的支持包没有安装,以及一些其他的问题,导致可以编译但是不能将程序烧录到单片机中。现整理一下解决思路: 1、将支持包下载并添加: 找到你需要用的MCU的具体型号: 例如: 点击网址,下载安装包,或者在csdn等其他网址下载安装包,将下载好的pack包放到keil5的安装目录下的.Download中: 点击file中的import,将路径选择到.........

hanhan的博客 5万+

Linux | Ubuntu18.04安装RTX 4060显卡驱动完整教程

本节详细介绍了如何在ubuntu18系统安装4060显卡的驱动。

九七的博客 5159

Android NDK 定位出错代码位置

在Android开发中,我们经常遇到以下错误: 对于这种“Fatal signal xx (SIGSEGV)”的错误,如果我们只是做应用层开发的话,基本是懵逼和无能为力的,因为这种都是底层C或者C++代码出现了错误(最多的就是空指针或者野指针导致的)。但是如果是我们自己写的C或C++代码出错的话,那就能定位出错位置并解决了。 一、制造错误 我们可以用Android Studio创建一个最...

ywl5320的专栏 1666

SAP_FICO模块-资产减值功能对折旧和残值的影响

SAP_FICO模块-资产减值操作对资产历史折旧以及后续折旧的影响,包括减值操作的配置前提

风沙的博客 2802

NDK中调用已有的so生成新的so

大概任务就是,用NDK,新生成一个so来调用已有so文件中的功能。 开始一头雾水,因为对NDK,写makefile不很熟悉,大概看了NDK里两个例子之后,没有提到调用已有的so,于是搜索了一下,看到一篇文章中的内容基本说明了我要做的事情,(非常感谢) http://blog.youkuaiyun.com/vrix/archive/2010/03/06/5351196.aspx 最后在这篇文章的帮助下,算是完成了任务。这里记载一下,记性差。老忘事情。。 说明:同样对这个问题不很熟悉的同学可以看一下。希望有所帮助。 比如。

insect27的专栏 1056

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android NDK 编译 so 文件 抹除导出符号 反逆向

Android 的 ART 虚拟机会用 dlsym() 查找你导出的 JNI 方法(如Java_com_example_native_NativeUtils_secretMethod),所以这些你不能隐藏,否则会导致运行时崩溃。但除了必须导出的 JNI 函数外,其余 C/C++ 函数符号不导出其实也完全没影响,编译器/链接器内部可以调用,运行时照样可以正常执行。此时 .so 中不需要导出 Java_com_example_xxx 符号,IDA 也就看不到!

1660

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RK3288 JNI实现so库的生成与调用

配置JNI :https://blog.youkuaiyun.com/shao15232/article/details/102500277 配置好JNI后我们来新建一个简单的demo,实现so库的生成和调用。 我们先新建一个demo。 打开Android stdio然后新建一个空白demo 然后设置这个demo的存储路径,注意语言要选择java。不要用推荐的kt。 完成后就进入Andr...

shao15232的博客 1209

linux下elf调用so文件函数执行shell命令及Android下调用so库函数实现

分为三个部分elf部分,so部分及Android部分 1、elf部分编程 #include <stdio.h> #include <stdlib.h> #include <dlfcn.h> typedef void(*pfnkill)(int);//函数类型指针,这个函数用来结束指定的进程 typedef int(*pfnadd)(int,int);///列出正...

haodawei123的博客 1298

安卓NDK编程使用STL库及注意事项

NDK环境搭建 windows上搭建NDK开发环境:VS2013 + VisualGDB,参考链接:http://jingyan.baidu.com/article/a681b0de1a361c3b1843460c.html VS2013新建一个安卓项目,选择创建一个安卓动态库,然后就可以开始编写C\C++代码了。 添加STL支持 STL是C++开发最常用的一个库了,直接在程序中添

https://github.com/JelinYao 9271

eclipse用ndk编译生成.so文件

今天帮朋友搞了一天eclipse导入jni项目报错,之前一直以为是C文件写错了,后来发现是ndk一直配置不上,导致一个.so文件一直没生成,编译时找不到 网上Usb Audio项目导入出错 报错为: 03-27 12:18:41.591: E/AndroidRuntime(8831): FATAL EXCEPTION: main 03-27 12:18:41.591: E/Androi

ZhangQiang_0的博客 866
上一篇: Android Studio 生成so包和.H文件给jni调用产生新so包。(即so包调so包)
下一篇: 仿淘宝菜单栏线条滚动
SXH_Android
博客等级 码龄11年 16粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值