【问题标题】:AWS Device Farm + Espresso: Running Espresso Instrumentation Test involving Native JNI method call in AWS Device FarmAWS Device Farm + Espresso:在 AWS Device Farm 中运行涉及本机 JNI 方法调用的 Espresso Instrumentation 测试
【发布时间】:2017-06-13 11:28:26
【问题描述】:

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

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

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

还可以在更早的时间点获取与 JNI 相关的日志,此时事情正在初始化

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

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

【问题讨论】:

  • 你知道这个问题的结果了吗?您是否尝试过其他云服务?

标签: java android jenkins android-espresso aws-device-farm


【解决方案1】:

我在 AWS Device Farm 团队工作。

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

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

希望对您有所帮助。

【讨论】:

  • 非常感谢@NikofTime。该应用程序可在本地真实设备上运行。 JNI 没有使用任何 google play 服务。它是一个用本机编写的简单图像压缩库。不知道为什么它会为此崩溃。任何指针将不胜感激。再次感谢:)
  • 您是否碰巧知道设备上是否需要启用任何设置?除了设置和辞职之外,我想不出应用程序会崩溃的任何原因,除非由于应用程序在不同的设备上测试而实际发现了兼容性错误。
  • 没有特殊设置。这是一个简单的图像压缩应用程序。到目前为止,我在 AWS Device Farm 中测试过的所有设备都发生了崩溃。所以不确定它是否是特定于设备的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 2017-06-26
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多