安卓 jni 开发错误 UnsatisfiedLinkError: Native method not found

本文详细解析了在JNI开发过程中常见的 UnsatisfiedLinkError 错误,包括 so 文件找不到及 native 方法名错误两种情况,并提供了具体的解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客: 安卓之家
微博: 追风917
优快云: 蒋朋的家
简书: 追风917

jni 开发的坑挺多的,今天遇到好多个,现在这个是这样的:

UnsatisfiedLinkError: Native method not found

很明显是因为 native 方法找不到,google 下发现该错误出现频率还蛮高的,基本有两种:

  • so 文件找不到

这个就需要配合手机 cpu 类型和 so 类型服用,仔细查看去吧,问题不大的。

  • native 方法名有误

我就是犯了这个错误,涉及 jni 开发最基本的知识点:

C语言方法命名规则 :

Java_完整包名类名_方法名(JNIEnv *env, jobject thiz)  //注意完整的类名包名中包名的点要用 _ 代替;

参数介绍 : C语言方法中有两个重要的参数, JNIEnv *env, jobject thiz ;

  1. JNIEnv 参数 : 该参数代表Java环境, 通过这个环境可以调用Java中的方法;
  2. jobject 参数 : 该参数代表调用jni方法的类;

好了,原来,我是调整了包名,而这个 native 方法名没有改,导致该错误的发生。

还是那句话,用心一点,用力一点,你会做的更好,加油吧,骚年!

分享是一种美德,更是一种生活方式!!

也许你会说我是一个梦想者,但我不是唯一的一个。

悦分享,越快乐^_^

欢迎交流,转载请注明出处,谢谢!

07-22 18:02:18.502 11831 11831 I Typeface: Preloading /system/fonts/Roboto-Regular.ttf 07-22 18:02:18.542 11831 11831 V GraphicsEnvironment: ANGLE Developer option for 'com.taixin.txallremote' set to: 'default' 07-22 18:02:18.542 11831 11831 V GraphicsEnvironment: ANGLE GameManagerService for com.taixin.txallremote: false 07-22 18:02:18.543 11831 11831 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported. 07-22 18:02:18.544 11831 11831 D NetworkSecurityConfig: No Network Security Config specified, using platform default 07-22 18:02:18.545 11831 11831 D NetworkSecurityConfig: No Network Security Config specified, using platform default 07-22 18:02:18.545 11831 11831 I : application init 07-22 18:02:18.552 11831 11853 D libEGL : loaded /system/lib/egl/libEGL_emulation.so 07-22 18:02:18.553 11831 11853 I nemucooker: cook file1: /etc/mumu-configs/renderer.config, last modify time: Thu Aug 29 11:22:45 2024 07-22 18:02:18.553 11831 11853 I nemucooker: cook file2: /data/system/etc/mumu-configs/renderer.config, last modify time: Thu Jul 17 21:45:34 2025 07-22 18:02:18.553 11831 11853 I nemucooker: cook select file: /data/system/etc/mumu-configs/renderer.config 07-22 18:02:18.566 11831 11853 D libEGL : loaded /system/lib/egl/libGLESv1_CM_emulation.so 07-22 18:02:18.568 11831 11853 D libEGL : loaded /system/lib/egl/libGLESv2_emulation.so 07-22 18:02:18.590 11831 11853 E GraphicsEnv: Failed to get gpu service 07-22 18:02:18.599 11831 11831 I txallremote-H6RemoteIO: load library: libtxporting-i2c.so 07-22 18:02:18.600 11831 11831 E ziparchive: Zip: lseek on fd -2 failed: Bad file descriptor 07-22 18:02:18.625 11831 11831 I txallremote-H6RemoteIO: txallremote init 07-22 18:02:18.626 11831 11831 E xin.txallremot: No implementation found for void com.taixin.txallremote.jni.H6RemoteIO.TxAllRemote_Init() (tried Java_com_taixin_txallremote_jni_H6RemoteIO_TxAllRemote_1Init and Java_com_taixin_txallremote_jni_H6RemoteIO_TxAllRemote_1Init__) 07-22 18:02:18.626 11831 11831 D AndroidRuntime: Shutting down VM 07-22 18:02:18.627 11831 11831 E AndroidRuntime: FATAL EXCEPTION: main 07-22 18:02:18.627 11831 11831 E AndroidRuntime: Process: com.taixin.txallremote, PID: 11831 07-22 18:02:18.627 11831 11831 E AndroidRuntime: java.lang.UnsatisfiedLinkError: No implementation found for void com.taixin.txallremote.jni.H6RemoteIO.TxAllRemote_Init() (tried Java_com_taixin_txallremote_jni_H6RemoteIO_TxAllRemote_1Init and Java_com_taixin_txallremote_jni_H6RemoteIO_TxAllRemote_1Init__) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at com.taixin.txallremote.jni.H6RemoteIO.TxAllRemote_Init(Native Method) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at com.taixin.txallremote.jni.H6RemoteIO.remoteOpen(H6RemoteIO.java:17) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at com.taixin.txallremote.dataway.RemoteDirectIo.getInstance(RemoteDirectIo.java:27) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at com.taixin.txallremote.activity.TempHumiControlManagerActivity.onCreate(TempHumiControlManagerActivity.java:81) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8054) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8034) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1347) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3736) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3931) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2294) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8060) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) 07-22 18:02:18.627 11831 11831 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1091) 07-22 18:02:18.651 11831 11831 I Process : Sending signal. PID: 11831 SIG: 9 07-22 18:02:18.673 1251 2855 I ActivityManager: Process com.taixin.txallremote (pid 11831) has died: fg TOP 07-22 18:02:18.673 1055 1055 I Zygote : Process 11831 exited due to signal 9 (Killed) 07-22 18:02:18.673 1251 1291 I libprocessgroup: Successfully killed process cgroup uid 10109 pid 11831 in 0ms 07-22 18:02:24.472 1091 1091 D opengl-gc: Check pid 11831: running 0
最新发布
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值