gpt4 book ai didi

android - UnsatisfiedLinkError 安卓

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:39 25 4
gpt4 key购买 nike

我们有这个加载原生库的应用程序,这个库提供供我们调用的本地方法。在某些手机上(尤其是速度较慢的的),这会导致问题。每当发生 UnsatisfiedLinkError(我认为)库仍在“加载”并调用了一个方法过早地。

有没有办法处理这个问题?就像检查库是否已经加载一样。

最佳答案

即使在较慢的设备上,对 System.loadLibrary() 的调用也非常快;但是,如果您的应用程序以多线程方式运行,或者如果涉及静态构造函数的类仅在响应某些 UI 事件时加载 - 那么可能会出现竞争条件:依赖于存在的 native 库的其他一些类将导致崩溃。

对于所有具有 native 方法的类,不禁止使用调用 System.loadLibrary() 的静态构造函数。您可能会看到一些关于 native 库被加载的警告,但这不会产生负面影响。

有时,我们使用自定义 Java 代码将 native 库提取到 files第一次运行应用程序时的目录,而不是依赖系统安装程序,将它们放入 lib目录。这应该格外小心,所有 Activity (双关语意)应该等到库(通常从​​ APK 的 Assets 文件夹)提取完成。

另一个问题是,对于某些设备,您的库名称可能会被系统库使用。在这种情况下,System.loadLibrary() 将从 /system/lib 而不是从您的应用加载库;但这很难解释 3 秒延迟的影响。

关于android - UnsatisfiedLinkError 安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21285967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com