java - native 函数未找到实现

标签 java android android-ndk java-native-interface

问题:20% 的用户正在接收:

Fatal Exception: java.lang.UnsatisfiedLinkError
No implementation found for java.lang.String com.example.utils.API.getHashString(android.content.Context) (tried Java_com_example_utils_API_getHashString and Java_com_example_utils_API_getHashString__Landroid_content_Context_2)

对于其他 80% 的应用程序运行良好,在我的测试设备上也不异常(exception)。 无法弄清楚是什么问题。

编辑 1: 库在初始屏幕上完美加载。在这一点上也不异常(exception)。

static { System.loadLibrary("my-lib"); }

编辑 2: 刚刚重现错误。这绝对是随机的。应用程序函数调用工作正常,有时它开始失败。唯一的解决方法是重新安装该应用。

最佳答案

根据我的评论和@stanislav-parkhomenko 后来的评论,我将其重新发布为答案。谢谢!

我的评论:

Where is the static {...} block located? A possible reason for this could be that the code is not executed before some calls.

后来自己也确认是这个原因:

The problem was in library initialization. Splash screen run not always, because of sharing functionality, thats why some times library did not load.

Thanks to Xavier Rubio Jansana for advice, which cured my blindness.

很高兴对您有所帮助!

关于java - native 函数未找到实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42154863/

相关文章:

java - Android Studio ImageView 上的 switch 语句

java - Java中将一个字符串拆分为多个字符串

java - 解释 Java VM 非标准选项的好资源

android - 检测点击父项时点击了哪个子项

android - 在摩托罗拉 TC55 上获得扫描的值(value)

android - 在没有 gradle、ant 或 cmake 的情况下仅创建 JNI/NDK apk 命令行

java - 获取java文件的动态执行结果

java - Java 中 PHP 的 $_SERVER ['DOCUMENT_ROOT' ] 的等价物是什么

基于 OS X 和 "ranlib: warning for library..."构建的 Android C 库

android - 如何访问类加载器/App Linearalloc 类信息大小?