Android JNI编译问题汇总

Android JNI开发常用库汇总,再也不用自己编译啦 Android JNI开发中常用库汇总 此hub是我在开发android jni 过程中编译或者收集到的一些常用库,android 应用环境比较固定,所以一次编译好,大家就都可以用。(持续更新~ ~) 使用过程遇到问题,欢迎讨论。 所有文件在Github下载 文章目录Android JNI开发中常用库汇总1 OpenCV动态库2. tensorflow-lite动态库3. caffe动态库3.5 caffe的aar库4. pytorch动态库5. boost静态库6. 未完待续 。。。 1 OpenCV动态 阅读详情

1. javah 命令生成 .h文件生成问题.

正确的使用方法是: 使用IDE正确编译后到.\bin目录下去.

使用javah -classpath . -jni 包名.类名 

例如javah -classpath . -jni com.test.testjni.TestJNI

其中bin目录下面应该是com文件夹的根目录.

特殊情况: 如果该类名使用了除Java以外的代码如Activiy类.该命令会出现Class Not found如下所示:

错误: 无法访问android.app.Activity
  找不到android.app.Activity的类文件

原因是编译时, Classpath没有包括Android的Class文件目录.  解决方法是:

然后就进去sdk里面Platform的 Android-16目录下,把android.jar复制,改名为android.rar,然后解压为一个名叫android的文件夹,删掉android.rar,进去android文件夹,把目录复制,到classpath里面加上去,ok了


最终成功代码如下:javah -classpath D:\android-sdk\platforms\android-16\;.  -jni com.xxxx.xxxx.android.plugin.natives.simi.utils.AQConfig


Android安卓中jni封装代码打包为aar 前文已经介绍jni编译c++代码且已经成功封装成java,但是c++是以源代码形式继承在app中,本文介绍如何将前述jni c++代码以隐藏源代码封装成aar的形式。 阅读详情

相关推荐

【Android】Eclipse自动编译NDK/JNI的三种方法

【Android】Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 一、Eclipse关联cygwin 1. 工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program      2. 参数配置     二、Ecl

SkySeraph 优快云博客 4386

JNI初步配置和使用

什么是JNI?   JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。 JNI的副作用编辑   一旦使用JNI,JAVA程序就丧失了JAVA平台的两个优点: 1、程序不...

一个小菜鸟的成长之路的专栏 1289

重温android studio jni编译生成so文件

步骤: 1、创建一个android工程 2、编译工程,Buiid->Make Project生成class文件 3、配置NDK 4、创建一个NdkUtil类 5、创建main.c和一个空的c文件empty.c 6、编译工程,生成so文件 7、复制so文件到jniLibs下 8、完成 具体实现: 1、创建一个android工程(这个就不废话了) 2、编译工程,Bui

fydsw1314的专栏 1万+

改包名导致JNI调用失败的问题

修改以前的代码,移动了一个文件,修改了其包名,在这个文件代码中有一些native函数通过jni调用库函数,于是重新生成了头文件,修改库函数代码中的函数名,重新生成库,本来想着包名改了,库函数名也跟着改了,应该没问题的,结果在加载的时候总是失败,跟踪发现是库函数中也回调了Java的代码,必须将回调Java代码部分的包名也一起改掉。 ...

mypyg的专栏 1014

安卓NDK交叉编译与JNI开发实战指南

JNI(Java Native Interface)是Java与原生代码(C/C++)交互的关键技术,通过NDK(Native Development Kit)工具链实现跨平台编译。交叉编译技术允许开发者在x86架构主机上生成ARM架构可执行文件,这是移动开发中性能优化的核心手段。在安卓生态中,从NDK r19开始推荐使用Clang工具链进行高效编译。JNI开发涉及数据类型映射、异常处理、内存管理等关键技术点,广泛应用于音视频处理、游戏引擎等高性能场景。通过合理使用直接缓冲区、缓存方法ID等优化技巧,可以显

cuibinmo3519的博客 387

用UDP协议在dos命令行里模拟一个聊天程序

/* 需求: 在dos命令行里模拟一个聊天程序 有收数据的部分,和发数据的部分,这两部分需要同时执行。 那就需要用到多线程技术。 一个线程控制收,一个线程控制发。 */ import java.io.*; import java.net.*; class C

s_x_x的记录 1955

Android jni调用注意问题

Java引入so库的方法 static { System.loadLibrary("libjnitest"); } build.gradle 文件中需要配置so sourceSets{ main{ jniLibs.srcDirs = ['libs'] } } Java包名方法名需要与so库定义名称一致可以使用先定义Java类进行通过javac -...

ZH-0537的博客 3320

ESP32-S3射频测试与全球认证全栈实践指南

功率谱密度(PSD)和发射功率等级是无线通信设备射频合规的核心基础概念,其物理层原理直接决定自适应测试、阻塞容限及多国认证的通过路径。PSD ≥10 dBm/MHz触发强制性自适应测试,需验证LBT机制与跳频鲁棒性;而16级可编程发射功率等级(-24 dBm至+20 dBm)则为功耗、覆盖与法规平衡提供工程调控维度。该能力广泛应用于低功耗蓝牙IoT终端、智能家居网关及工业无线传感器等场景,尤其在ESP32-S3平台中,需结合eFuse校准、Sigma工具链与QuickTrack认证策略实现从实验室调试到量产

weixin_34945060的博客 285

Android源码编译JNI遇到的问题与解决方法

这些问题是都是坑,有的问题晚上都找不到解决方法,是因为这些问题只要用到源码编译的时候才会遇到,这里我用的是源码编译。 问题如下;问题1.dlopen(“/data/app/xxx.xxx.so”)failed,dlopen”/data/app/xxx.xxx.so” has unexcepted e_machine 40 解决方法:这里是因为模拟器的cpu和编译出来的.so文件的平台不一样,这里

JianYeung的博客 2969

ESP32S3接入讯飞在线语音识别教程及配套源代码

本文介绍了如何使用ESP32-S3开发板实现讯飞在线语音识别功能。首先,需要准备硬件设备,包括ESP32-S3开发板、麦克风模块、MicroSD卡模块和扬声器模块。接着,安装Arduino IDE并配置ESP32-S3开发环境,注册讯飞开放平台账号并获取API凭证。然后,通过I2S接口连接麦克风模块,并编写代码实现语音录制、Base64编码、API请求和识别结果处理。代码包括初始化WiFi、麦克风、系统时间,以及录制语音、发送请求、解析响应等功能。最后,通过按键触发录音,并将识别结果输出到串口。

2401_88800025的博客 746

大唐杯历届省赛押题训练(6)

考试-TD-LTE无线网络设备介绍-TD-LTE网络架构一、单选题1TD-LTE的接入网E-UTRAN由下列哪些网元组成( )。0分/1分A、RNCB、BTSC、eNode BD、Node B提交答案:B正确答案:C考点TD-LTE网络架构解析暂无试题解析二、多选题1关于LTE网络整体结构,哪些说法是正确的( )0分/2分A、E-UTRAN用E-NodeB替代原有的RNC-NodeB结构B、E-NodeB间的接口为S1接口C、各网络节点之间的接口使用IP传输。

nimo观察者 633

AE/PR/FCPX动态模板高效使用指南:从解构到创意应用

动态图形设计是视频制作中提升视觉表现力的关键技术,其核心在于通过关键帧动画、运动路径和节奏控制,将静态元素转化为富有生命力的视觉语言。在工程实践中,After Effects(AE)作为行业标准工具,结合Premiere Pro(PR)和Final Cut Pro(CPX)等剪辑软件,形成了高效的内容生产管线。这类技术方案的价值在于平衡了专业品质与制作效率,尤其适用于品牌宣传、产品发布、社交媒体短视频等需要快速产出高质量视觉内容的场景。本文以热门的“快闪节奏感”和“错版动力学”风格模板为例,深入解析其封装的

weixin_30838873的博客 419

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代

摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化

致力于lidar应用开发 82

Android Studio 中编译 JNI 代码

Android Studio 中编译 JNI 代码 经常需要实现一些 C,C++ 接口的功能模块,提供给 java 层调用。 那么就需要利用 JNI 写接口提供 java 的 native 调用。 必不可少的一步就是编译 JNI 代码。 需要的文件 (项目) src main cpp JNI 代码(依赖) java (接口类 class) build.gradle CM...

描绘自己的王国…… 2056

《点云进阶》专栏文章目录

点云进阶》专栏文章目录

点云侠的博客 4903

ThingsBoard教程(十九):规则节点概览介绍

在ThingsBoard的CE V2.5.6版本中,一共有这几种类型在每一种类都有包含了多个节点,每一种类型的节点都有不同的颜色表示本篇文章做一个简单的概括,后续的文章会详细讲解每一个种类的节点如何使用,每一个节点的使用。一共有10个,使用黄色表示 过滤器节点用于消息过滤和路由。一共有9个,使用绿色 属性节点用于更新传入消息的元数据。一共三个,使用蓝色 转换节点用于更改传入消息字段,如发起者、消息类型、有效负载和元数据。一共21个,使用红色标识 动作节点根据传入的消息执行各种动作。一共9个,使用黄色表示,

知无涯 1万+

安卓JNI基础知识

JNI 是java原生接口(Java Native Interface),它定义了 Android 从受管理代码(使用 Java 或 Kotlin 编程语言编写)编译的字节码与原生代码(使用 C/C++ 编写)进行交互的方法,也就是安卓通过JNI技术提供Java调用C/C++或者C/C++调用Java的能力。JNI 不依赖于供应商,支持从动态共享库加载代码,虽然有时较为繁琐,但效率较高。

Watom_663的博客 1259

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android Studio实现JNI,并编译出本地库So

1.  什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),...

https://github.com/Mac-Zhu 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android源码中添加JNI实战

本篇博客讲解如何在android源码中添加自己的JNI代码,并修改上一篇博文中自定义的服务,实现调用自己添加的JNI函数,最终在相机拍照时调用服务,验证JNI函数是否别正确调用。

Mekeater的博客 1457

【Android】【JNI用法与调试记录】

JavaVM声明在jni.h文件里面,我们在JNI开发中,必定要引入#include <jni.h>头文件。#else//C语言定义#endif/**/#else#endif/**/#else//C的定义#endif/**/...#else//C的定义#endif/**/...

super_sun_shine的博客 1797

Android JNI 使用 NCNN

Android JNI 使用 NCNN 前一篇文章介绍了怎么编译生成 ncnn 的动态库。 NCNN - 适用于移动端的高性能神经网络前向计算框架 这里就介绍一下怎么在 Android 中使用 ncnn 吧。 以 MTCNN 的人脸检测为例: 网上可以找到不少 MTCNN + NCNN 做人脸检测的例子(C++版本)。 MTCNN + NCNN (C++版) 人脸检测的核心代码可以参考:附录 I:...

描绘自己的王国…… 2115

Android Studio中如何编写JNI代码及编译so库

简单实例说明如何使用Android Studio NDK编译so库

Bright的博客 4030

Android JNI 基础入门指南

Android JNI 基础入门指南

ljy545733599的博客 1711

Android C++系列:JNI常见问题

_atomic_*本文介绍了JNI开发过程中常见的问题,比如版本问题,定位符号失败问题以及不同平台函数实现的差异等。后续可以持续维护迭代本文档。

轻口味的专栏 1854

Android ——JNI基本了解与使用

JNI (Java Native Interface,Java本地接口)是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用。本地程序一般是用其它语言(C、C++或汇编语言等)编写的,并且被编译为基于本机硬件和操作系统的程序。Android NDK开发之JNI基础Android JNI详解JNI入门到精通: 用Java和C/C++打造高性能应用ANDROID STUDIO 创建一个JNI工程创建JNI基础工程并运行JNI基本知识(一)JNI编程原理。

qq_35231506的博客 2352
上一篇: Android SDK/NDK问题集
下一篇: Android Drawable文件分类及内存问题
devilkin64
博客等级 码龄19年 16粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值