我的一些Kotlin类是由本机库(使用jni)实现的。这些类在大多数活动中都会被一个同步服务使用(稍后可能会有第二个服务)。
加载此库并处理加载错误(例如,加载失败时发送错误报告)的建议解决方案是什么?
基本示例在 MainActivity.onCreate .或者我经常在MainActivity类中看到一个静态块。 另一种方法可能是在源代码的派生类中加载库 Application .但我不确定是否只有一个 应用 所有活动和服务的实例,或者为每个服务创建一个“应用程序”实例,为所有活动创建另一个实例。
MainActivity.onCreate
Application
应用
所以我的问题是:放在哪里 System.loadLibrary() ?
System.loadLibrary()
是的,这个应用程序是整个安卓应用程序的一个单一组件。但是您不必担心,如果之前加载过库,LoadLibrary()将不会执行任何操作。因此,最佳实践是在依赖于该库的所有类的静态块中添加LoadLibrary。
考虑使用 ReLinker 该库提供了日志记录功能,还解决了加载本机库时出现的一些普遍问题。