如何调试 Project Tango C 示例

How to debug Project Tango C examples

我正在使用 Ubuntu 14.04,我克隆了 c 示例 github 存储库。我安装了 ADT Eclipse,还安装了 C/C++ 插件。我可以将示例项目导入为 Android 项目。到目前为止,我尝试了 PointCloud 示例和增强现实示例。我可以将调试会话作为 Android 应用程序启动,并且我可以 select 我的 Tango 平板设备。我可以在 logcat 视图的顶部看到此错误消息:

01-20 00:09:05.583: A/art(5250): art/runtime/thread.cc:1011] No pending exception expected: java.lang.UnsatisfiedLinkError: Couldn't load point_cloud_jni_example from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/libtango_device.jar", zip file "/data/app/com.projecttango.experiments.nativepointcloud-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.projecttango.experiments.nativepointcloud-1, /system/lib, /vendor/lib, /system/lib]]]: findLibrary returned null

与此同时,在平板电脑上,我看到了向应用程序授予权限的对话框,我授予了它,但应用程序立即停止了。

  1. 我应该使用 Eclipse ADT,还是可以使用 Android Studio (IntelliJ)?
  2. 我应该将项目导入为 Android 项目吗? (我想是的)。

错误消息中提到的 dalvik 对我来说看起来很奇怪。我认为 Tango 应用程序应该是 ART 应用程序,但错误消息提到了 Dalvik(虽然 ART 运行时似乎试图加载它)。那是问题所在吗?我该如何解决?

我终于放弃了 Android Studio - 我设法继续前进,直到我不得不引入探戈共享库,只是找不到说服 gradle 到 [=21] 的方法=] 它 - 还有太多评论

the ndk integration is busted, long live the new ndk at some vague future point

我在 Windows,最后突然想到了 VisualGDB,它允许在 java 端使用 eclipse,在本机端使用 visual studio - 可能可以已经用 eclipse 完成了,但是 visual studio 是老朋友了。既然你在 Ubuntu,你应该在 gdb 接口中有替代方案。

好的,我只是需要做一些功课。如此处所述:https://developers.google.com/project-tango/apis/c/c-getting-started

  1. 我将当前目录更改为所需的 C 示例项目(根目录)。然后我不得不说<ndk_path>/ndk-build。编译了包含 JNI 相关部分的 so 文件。例如,在 point-cloud-jni-example 的情况下,在 libs 目录中创建了一个 armabi-v7a 目录,并在其中创建了一个 libpoint_cloud_jni_example.so 和一个 libtango_client_api.so 文件 created/compiled/placed.请注意,我已经安装了 NDK。

  2. 我在 ADT Eclipse 中重新打开项目并刷新(在项目资源管理器中右键单击根节点并刷新)。之后我仍然收到一条错误消息,它找不到 Android 清单。这是愚蠢的,因为它就在那里。为了触发某些操作,我在 Android 清单中将目标 SDK 版本调整为 20。请注意,如果您将最低 SDK 版本设置为 20,Tango 设备将不会出现在 AVD 中,因为它的 API 级别是 19,只是说':)

无论如何,在那之后我设法 运行 项目作为 Android 应用程序。另请注意,c-getting-started 中引用的 github 存储库不再存在。我们可以说 "hello world" 现在是 hello-tango-jni-example 项目。