【问题标题】:Testing companion application with Emulators?使用模拟器测试配套应用程序?
【发布时间】:2021-03-12 14:36:26
【问题描述】:

我想为我的 Tizen5.5 手表开发一个配套应用程序,它使用来自手机(Android 主机)的信息。我正在使用 Tizen Studio 开发 Windows 10

我找到了一个我想测试的好例子:https://developer.samsung.com/galaxy-watch-develop/samples/companion/hello-native.html,它的日期是 2016 年,有点旧,但我没有发现任何更新的东西。

对于开发我想使用 Tizen5.5 模拟器和 Android Studio 的模拟器。

我找到了一个 guidance,关于如何使用 Tizen 模拟器测试我的配套应用程序,但它没有帮助。

原来我需要安装“Samsung Wearable Extension”。所以我做到了:

但是我的模拟器没有获得扩展库,因此 Tizen Studio 无法构建这些示例,因为它找不到 sap.h

我在网上搜索了这个问题,但我什么也没找到。自 Tizen 3.0 版以来,三星可穿戴扩展似乎没有为 x86 模拟器编译(他们只为肯定不是 x86 的真实设备提供了该功能)。

所以我最终复制了 Tizen3 的 x86 版本的 SAP,然后最终 Tizen Studio可以构建此示例

但是我的模拟器无法运行示例,因为它没有安装 SAP。

然后我找到了这个站点:https://github.com/Samsung/Tizen.NET/issues/54,他们设法通过这些命令手动将 sap 安装到模拟器上:

sdb push [tizen_sdk_path]\platforms\tizen-4.0\wearable\emulator-images\add-ons\sap /opt/usr/home/owner/sap
sdb shell rpm -i /opt/usr/home/owner/sap/sap-1.9.5-0.i686.rpm

现在我的问题是 add-ons 中没有用于 tizen4.0 的 sap 文件夹。我只有 Tizen3.0。

所以我尝试这样做,但 rpm -i 失败:

sh-3.2# ls -all /lib/* | grep ncurses
lrwxrwxrwx  1 root         root               19 Nov  3 10:15 /lib/libncurses++.so.6 -> libncurses++.so.6.1
-rwxr-xr-x  1 root         root            71696 Oct 23 22:27 /lib/libncurses++.so.6.1
lrwxrwxrwx  1 root         root               20 Nov  3 10:15 /lib/libncurses++w.so.6 -> libncurses++w.so.6.1
-rwxr-xr-x  1 root         root            71696 Oct 23 22:27 /lib/libncurses++w.so.6.1
lrwxrwxrwx  1 root         root               17 Mar 13 18:20 /lib/libncurses.so.5 -> libncurses.so.6.1
lrwxrwxrwx  1 root         root               17 Nov  3 10:15 /lib/libncurses.so.6 -> libncurses.so.6.1
-rwxr-xr-x  1 root         root           169780 Oct 23 22:27 /lib/libncurses.so.6.1
lrwxrwxrwx  1 root         root               18 Nov  3 10:15 /lib/libncursesw.so.6 -> libncursesw.so.6.1
-rwxr-xr-x  1 root         root           247700 Oct 23 22:27 /lib/libncursesw.so.6.1
sh-3.2# rpm -i sap-1.7.54-0.i686.rpm
error: Failed dependencies:
        libncurses.so.5 is needed by sap-1.7.54-0.i686

如您所见,libncurses.so.5实际上在那里(尽管我已将其链接到 libncurses.so.6.1

所以这是第一步:让我的 Tizen5.5 模拟器包含 SAP 库。

第二步是让我的安卓模拟器连接到Tizen5.5模拟器:

我设法将SAccessoryService_Emul.apk 安装到我的 Android 模拟器,但我无法让它识别我的手表模拟器,它总是显示“断开连接”(这并不奇怪,因为手表模拟器没有 SAP 库):

我还使用adb -e forward tcp:8230 tcp:8230-e 执行了adb 命令,因为主机不是USB 设备而是模拟器。

为了确保我没有遗漏任何东西,我安装了 Tizen 3.0 模拟器(它显然无法运行我为 5.5 编译的应用程序),而且这个模拟器实际上安装了 SAP 库。

所以我去了第 2 步,在 Android 模拟器上打开了“三星配件模拟器”,但每当它尝试与 Tizen 模拟器连接时,它就会崩溃:

另一个设计精良的三星软件。

如果有人感兴趣,这里是错误:

2021-03-13 14:36:46.734 5124-5157/com.samsung.accessory.framework E/AndroidRuntime: FATAL EXCEPTION: SAP_DAEMON_HANDLER_THREAD
    Process: com.samsung.accessory.framework, PID: 5124
    java.lang.ArrayIndexOutOfBoundsException: Failed to update offset while sending the message! [offset=0; size=2]
        at com.samsung.accessory.session.SAMessage.decrementOffset(SAMessage.java:359)

ArrayIndexOutOfBoundsException:天哪。

郑重声明:三星人:真丢脸!您设法创建了世界上最糟糕的 SDK。您的示例必须方式更易于安装!

【问题讨论】:

    标签: tizen tizen-wearable-sdk tizen-emulator tizen-studio


    【解决方案1】:

    即使安装了所有三星 SDK,我也遇到了同样的问题。

    所以,我所做的是,转到 Project > Properties > C/C++ Build > Tizen Settings 并检查 Samsung-sap 选项。

    这解决了fatal error: 'sap.h' file not found 错误

    【讨论】:

    • 在构建基于 x86 的模拟器时,我没有针对 Tizen 4.0 或 Tizen 5.5 的“samsung-sap”选项。
    • 你的回答似乎是在 Mac 上完成的,我明确提到我正在寻找 Windows10 的解决方案,对不起。
    • 另外,解决“构建期间缺少 SAP”并不能解决模拟器上缺少 SAP 的问题,也不能解决“使用 Android 模拟器测试配套应用程序”的问题。
    【解决方案2】:

    仅供参考
    首先,模拟器不支持 SAP。不幸的是,它只支持真实设备。

    您需要在 Platform Tab 中将 Architecture 从 x86 更改为 arm。 并且,您可以选择 samsung-sap 并构建代码而不会出错。

    如果您使用模拟器运行/调试应用程序,Tizen Studio 会自动将设置从 arm 更改为 x86。你会再次遇到构建错误!!

    【讨论】:

    • 这一切我都知道。因此,对于开发,您必须始终不断地使用真实设备?这是“如何开发配套应用程序”的官方方法?
    • 使用真机进行开发真的很痛苦。将新版本上传到真机比上传到模拟器至少要多 3 倍。我不敢相信每个开发者都使用真实设备。
    • 此外,在 4.0 版本(最高 3.0)之前的模拟器上似乎支持 SAP 实际上。如果您在安装 SAP 后运行模拟器(3.0 版本),它将在第一次启动后安装库。
    • 复杂情况,Gear 设备的固件 = Tizen 平台版本 + 三星自己的产品特性(SAP、Health 等)。 Tizen Studio 中的模拟器没有三星自己的产品功能。
    • 是的,复杂,这就是100分的原因:)
    猜你喜欢
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    相关资源
    最近更新 更多