【问题标题】:Provisioning Nymi band from Android app从 Android 应用程序配置 Nymi 频段
【发布时间】:2015-09-09 12:40:39
【问题描述】:

我正在尝试从我的 Android 应用程序中配置 Nymi 乐队。我正在使用来自 Nymi Android SDK 2.0 的示例代码(可以从 here: 下载)。我删除了所有与 Nymulator(Nymi 乐队模拟器)相关的代码。我想用真正的 Nymi 频段测试配置。但是,当我单击设置按钮时,应用程序崩溃了。我尝试使用异常断点对其进行调试,但在调试器中出现“getsockopt errno 88”错误:

我也附上截图。

我在google上做了一些研究,发现errno 88是

#define ENOTSOCK    88  /* Socket operation on non-socket */

在应用启动期间,我在调试控制台中看到以下消息:

Connected to the target VM, address: 'localhost:8604', transport: 'socket'

我认为,与套接字的连接很好。我不确定,后来是什么导致套接字连接出错。

这是我单击设置按钮后在我的 LOGCat 中看到的内容:(我只发布了部分错误消息,因为 Logcat 中的错误消息太长了)

编辑:我添加了一些断点,我找到了应用程序崩溃的地方。我找到了这段代码:

    try {
        System.loadLibrary("_nymi_sdk_net");
        _loaded = true;
    } catch (UnsatisfiedLinkError var6) {
        return false;
    }

在 system.load 库中,我收到错误消息。

编辑 2:我将库从 net 更改为 native,因为 net 用于模拟器,native 用于设备。这次在同一行出现新错误:System.loadLibrary("_nymi_sdk");

截图:

【问题讨论】:

  • Debug控制台只显示IDE连接手机,其实和你的应用没有关系。请检查 Logcat 视图,这是电话日志流式传输到的位置。
  • 我添加了 logcat 输出。请看。
  • 我在 SDK 中发现了一些有趣的东西并重写了我的答案。

标签: android errno


【解决方案1】:

(免责声明:我对这个 SDK 或乐队一无所知,这个答案只是一个猜测。我已经删除了我之前的答案,因为它是在黑暗中错过的机会。)

SDK 的 README.md 中有一个小提示:

先决条件:

  • 安卓开发:
    • [...]
    • 要将 BasicExample 应用程序与 Nymi Band 一起使用,Examples\BasicExample\libs 中的 NCL 库必须替换为 NCL\native\libs

您必须从BasicExample\libs 中删除所有文件和文件夹,然后将NCL\native\libs 中的所有文件复制到那里。

(我想知道他们为什么没有更加强调这一点......)

所以libs文件夹应该包含以下文件夹和文件:

【讨论】:

  • 我厌倦了你的解决方案,它没有用。该应用程序仍然因相同的错误而崩溃。
  • 好吧,那太糟糕了。另一个可能为 null 的字符串是应用程序名称。您没有更改“NCLExample”,对吗?
  • 我正在更新我的问题。请看一下
  • 我正在尝试这样做,我删除了 net.jar 文件并将其替换为 native.jar 文件,但不知何故 native.jar 文件没有扩展并显示 NCL 库文件跨度>
  • 但文件仍然存在于 native.jar 文件中
猜你喜欢
  • 1970-01-01
  • 2010-12-29
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
相关资源
最近更新 更多