android插件需要导入.so文件,然后运行报错
错误详情
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String com.bitfork.core.coins.fil.XXXLibFilecoin.checkAddress(java.lang.String) (tried Java_com_bitfork_core_coins_fil_XXXLibFilecoin_checkAddress and Java_com_bitfork_core_coins_fil_XXXLibFilecoin_checkAddress__Ljava_lang_String_2)
解决思路
一般是看.so文件是否引入错误,cpu架构是否有加,但这个错误明显没说找不到.so,直接说jni里方法checkAddress 找不到,这就不好解决了
ChatGpt给出思路
java.lang.UnsatisfiedLinkError通常提示的是Java虚拟机(JVM)在尝试加载一个本地库(通常是.dll文件在Windows上,或.so文件在 U n i x / L i n u x Unix/Linux Unix/Linux系统上)时遇到了问题。本地库是用非Java语言(如C或 C + + C++ C++)编写的程序库,可以通过Java的本地方法接口(JNI)被Java代码调用。在您提供的错误消息中,No implementation found for java.lang.String com.bitfork.core.coins.fil.XXXLibFilecoin.checkAddress(java.lang.String)表明JVM无法找到名为com.bitfork.core.coins.fil.XXXLibFilecoin.checkAddress的本地方法实现。
解决这个问题通常需要确认以下几点:
最终解决方案
方法包名必须和jni声明一致,修改包名和方法引入路径和.so一致,比如jni规定方法的包名是com.test.demo,
如果你更改了包名,路径就会导致找不到jni方法