java.lang.UnsatisfiedLinkError:未找到实现间歇性发生

问题描述 投票:0回答:2

最近我们在生产中遇到了一个非常奇怪的问题,即使在某些现代 Android 设备上,它也只是间歇性地发生。当调用特定函数时,问题是“java.lang.UnsatisfiedLinkError:未找到实现”,并且每次都会调用该函数,但问题并不总是发生。我们尝试过使用 ReLinker,但不幸的是问题尚未解决。

一些背景知识,我们开发了一个 SDK,它是 Android 应用程序的一部分。在我们的 SDK 中,我们使用了一些本机函数。使用

System.loadLibrary()
加载本机库是在主类的静态块中完成的。因此,按照权利,当我们的类被触发时,我们的本机库应该被加载,并且这个问题不应该发生,不幸的是这里不是这种情况。是否有可能在库尚未加载时调用我们 SDK 中的函数?

我们有点陷入困境,真的没有什么想法,所以任何帮助将不胜感激。谢谢!

android unsatisfiedlinkerror
2个回答
1
投票
在使用该方法之前需要调用

System.loadLibrary()
。您可以尝试将其移出静态块吗?还要仔细检查名称。

缺失

extern "C"
也会导致
UnsatisfiedLinkError

参考:SO问题供进一步参考


0
投票

就我而言,在 Native 更改之后,我使用了预构建的库。因此,关闭 gradle.properties 中的标志以在开发时使用本机更改。

© www.soinside.com 2019 - 2024. All rights reserved.