ARToolkit原生示例项目不起作用

时间:2016-04-05 05:42:34

标签: android android-studio android-ndk artoolkit

最近我一直在android studio上使用ARToolkit5开展项目。由于我对使用NDK的开发完全不熟悉,我首先想到的是查看artoolkit中包含的示例项目。基于Java的示例工作正常(ARSimpleProj& ARSimpleInteractionProj)。但是当我尝试使用本机库(ARSimpleNativeProj& ARSimpleNativeCarsProj)运行项目时,该项目无法正常工作。

我得到的只是logcat中的一些错误消息,如下所示:

  

E / libARWrapper:ARController(native):[error]从> file' Data / patt.hiro',width 80.000000加载单个AR标记。   E / libARWrapper:ARController(本机):[错误]错误:无法从文件' Data / patt.hiro'中加载单个> AR标记。   E / libARWrapper:ARController(native):[error]错误:无法加载标记。

     

E / libARWrapper:ARController(native):[error]从>文件' Data / patt.kanji',宽度80.000000加载单个AR标记。   E / libar:错误打开模式文件' Data / patt.kanji'阅读   E / libARWrapper:ARController(原生):[错误]错误:无法从文件' Data / patt.kanji'中加载单个> AR标记。   E / libARWrapper:ARController(native):[error]错误:无法加载标记。

logcat中的连续消息:

  

E / libARWrapper:ARController(native):   [error] arwQueryMarkerTransformation():无法使用UID找到标记   -1

我已经尝试了很多来找出问题所在。我无法找到解决方案。任何帮助表示赞赏。

我添加了一些logcat输出的更多细节,希望它能提供一些额外的信息

  

E / libARWrapper:ARController(native):VideoSource :: configure():video>源视频配置:" -format = NV21"   E / libARWrapper:ARController(native):VideoSource :: configure():video>源摄像头参数:" Data / camera_para.dat"   E / libARWrapper:ARController(native):[error]打开Android视频源。

  

E / libARWrapper:ARController(native):ARController :: startRunning():调用,>开始运行   E / libARWrapper:ARController(native):[error] ARController :: startRunning():>错误:未初始化,退出,返回false   E / ARToolKit:启动视频时出错   E / ARActivity:初始化摄像机时出错。无法继续。

我在logcat的顶部遇到此消息。我无法确定导致此类错误的原因

E/Zygote: Zygote:  error closing descriptor
libcore.io.ErrnoException: close failed: EBADF (Bad file number)
at libcore.io.Posix.close(Native Method)
at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
at                                         com.android.internal.os.ZygoteInit.closeServerSocket(ZygoteInit.java:221)
at com.android.internal.os.ZygoteConnection.handleChildProc(ZygoteConnection.java:879)
at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:242)
at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:713)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649)
at dalvik.system.NativeStart.main(Native Method)

2 个答案:

答案 0 :(得分:0)

使用Android Studio和ARToolKit时要做的第一件事就是运行位于其中的构建脚本 ARTOOLKIT_ROOT /安卓 build.sh和build_native_examples.sh

另外一个很好的起点是ARToolKit doku关于这一点: http://www.artoolkit.org/documentation/doku.php?id=4_Android:android_native

如果您使用的是GitHub版本,则即将发布的文档有更新。因为它没有在ARToolKit.org jet上发布,所以我为你附上了PDF:

https://drive.google.com/file/d/0B0I5m7Yc2x-rZm5vcDBDOGo1Rm8/view?usp=sharing

编辑:

我刚刚确认:

  • OS Ubuntu 14.04
  • Android Studio 1.5.1
  • 来自GitHub master branch的ARToolKit
  • NDK 11 / Android SDK 6.0 / Java 1.7.0_79

对我有用的步骤:

  • 执行ARTOOLKIT_ROOT / android / build.sh
  • 执行ARTOOLKIT_ROOT / android / build_native_examples.sh
  • 启动AndroidStudio
  • 导入项目 - > ARNativeSimpleProj
  • 在Nexus 5上运行

这一切都运作良好。

答案 1 :(得分:0)

尝试完全删除您的应用程序或删除应用程序数据。该应用程序将从Data文件夹缓存您的数据,因此如果您进行任何更改,它将不会捡起它。