0

我正在使用 Jenkins在 AWS Device Farm 上运行测试构建后操作在 Device Farm 中的设备中运行 Espresso Android Instrumentation 测试。该应用程序使用原生 JNI 库从 JPEGS 中创建 TIFF 图像。

然而,一旦执行原生函数的代码被执行,应用程序就会崩溃。即使我只是在 Device Farm 中的一台设备上运行应用程序,当我单击调用本机 JNI 函数的按钮时,应用程序也会崩溃。

我在日志中收到以下错误:原因:java.lang.UnsatisfiedLinkError:dlopen 失败:找不到“libtiff.so”引用的符号“rand”...

在初始化事物时,还可以在较早的时间点获取与 JNI 相关的日志

  • 在 libnativehelper.so 中找不到 JNI_OnLoad 0x0 跳过初始化
  • 试图加载lib libjavacore.so 0x0
  • CheckJNI 关闭

我想知道 AWS Device Farm 中是否默认禁用 JNI 库加载。如果是,有没有办法启用它们。如果默认支持 JNI 库,有人可以指出正确的方向,以便我解决这个问题。

4

1 回答 1

0

我在 AWS Device Farm 团队工作。

  1. Device Farm 上未禁用 JNI 库加载。
  2. 可能是您看到的问题的潜在原因的一件事是,我们在上传时最终会退出应用程序,这可能会破坏 Google 地图之类的东西。请参阅常见问题解答“您是否修改了我的应用程序?” https://aws.amazon.com/device-farm/faq/

还要确保您能够在本地真实设备上加载此应用程序并成功启动它。这将为您提供一个比较基准。

希望有帮助。

于 2017-06-28T20:49:26.880 回答