jni/ndk问题 :引用so库报错: java.lang.UnsatisfiedLinkError: No implementation found for

问题:

引用so库报错:

java.lang.UnsatisfiedLinkError: 
No implementation found for
 java.lang.String com.example.mynativec.MainActivity2.stringFromJNI()
  (tried 
  Java_com_example_mynativec_MainActivity2_stringFromJNI 
  and 
  Java_com_example_mynativec_MainActivity2_stringFromJNI__)

分析解决

首先需要知道so库里c/c++方法名,比如我这里是 Java_com_example_mynativec_MainActivity_stringFromJNI

  • com.example.mynativec : 包名
  • MainActivity : 类名
  • stringFromJNI: 方法名

在自己项目中也需要创建同样包名 、类名和方法名

//相同包名
package com.example.mynativec;

//相同类名
public class MainActivity {
	//相同方法名
    public native String stringFromJNI();

    static {
    	//so库文件 = [ lib + so库名 ].so ,lib开头不可少,
    	//这里load的是 so库名
        System.loadLibrary("native-lib");
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值