问题:
引用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");
}
}