我使用的是Ubuntu 14.04,我克隆了c个例子github repo。我安装了ADT Eclipse,并且还安装了C / C ++插件。我可以将示例项目导入为Android项目。到目前为止,我尝试了PointCloud示例和增强现实示例。我可以作为Android应用程序启动调试会话,我可以选择我的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
同时在平板电脑上,我提供了对话框以授予应用程序权限,但我会立即停止。
在给我的错误信息中看起来很奇怪的是dalvik。我认为Tango应用程序应该是ART应用程序,但错误消息提到了Dalvik(虽然看似ART运行时试图加载它)。那是问题吗?我该如何解决这个问题?
答案 0 :(得分:1)
我终于放弃了Android Studio - 我设法继续前进,直到我不得不引入探戈共享库,根本无法找到说服gradle链接它的方法 - 并且订单上有太多评论的
ndk集成被破坏,新的ndk在一些模糊的未来点上很长时间
我在Windows上,终于弹出了VisualGDB,它允许在本机端使用eclipse用于java端和visual studio - 可能是用eclipse完成的,但是visual studio是一个旧的朋友。由于您使用的是Ubuntu,因此您应该在gdb接口中有其他选择。
答案 1 :(得分:0)
我将当前目录更改为所需的C示例项目(root)。然后我不得不说<ndk_path>/ndk-build
。编译了包含so
相关部分的JNI
个文件。例如,对于point-cloud-jni-example
,在libs
目录中创建armabi-v7a
目录,并在其中创建/编译libpoint_cloud_jni_example.so
和libtango_client_api.so
文件/放置。请注意,我已经安装了NDK。
我在ADT Eclipse中重新打开项目并刷新(右键单击根节点上的Project explorer并刷新)。之后我仍然有一条错误消息,它无法找到Android清单。这是愚蠢的,因为它就在那里。为了触发某些操作,我在Android清单中将目标SDK版本调整为20。请注意,如果您将最低SDK版本设置为20,那么Tango设备将不会显示在AVD中,因为它的API级别为19,只是说':')
无论如何,之后我设法将该项目作为Android应用程序运行。另请注意,c-getting-started中引用的github repo不再存在。我们可以说“hello world”现在是hello-tango-jni-example
项目。