最近我一直在做一个在 android studio 上使用 ARToolkit5 的项目。由于我对使用 NDK 进行开发完全不熟悉,所以起初我想查看包含在artoolkit 中的示例项目。基于 java 的示例运行良好(ARSimpleProj 和 ARSimpleInteractionProj)。但是,当我尝试使用本机库(ARSimpleNativeProj 和 ARSimpleNativeCarsProj)运行项目时,项目无法正常工作。
我得到的只是 logcat 中的一些错误消息,如下所示:
E/libARWrapper: ARController (native): [error]Loading single AR marker from >file 'Data/patt.hiro', width 80.000000. E/libARWrapper:ARController(本机):[错误]错误:无法从文件“Data/patt.hiro”加载单个 >AR 标记。E/libARWrapper:ARController(本机):[错误]错误:加载标记失败。
E/libARWrapper: ARController (native): [error]Loading single AR marker from >file 'Data/patt.kanji', width 80.000000. E/libar:打开模式文件“Data/patt.kanji”进行读取时出错。E/libARWrapper:ARController(本机):[错误]错误:无法从文件“Data/patt.kanji”加载单个 >AR 标记。E/libARWrapper:ARController(本机):[错误]错误:加载标记失败。
并且在 logcat 中有一条连续的消息:
E/libARWrapper: ARController (native): [error]arwQueryMarkerTransformation(): 找不到 UID -1 的标记。
我已经尝试了很多来找出问题所在。我找不到解决方案。任何帮助表示赞赏。
我正在添加更多关于 logcat 输出的细节,希望它可以提供一些额外的信息
E/libARWrapper: ARController (native): VideoSource::configure(): video >Source video configuration: "-format=NV21" E/libARWrapper: ARController (native): VideoSource::configure(): video >Source camera parameters: "Data/camera_para.dat" E/libARWrapper: ARController (native): [error]Opening Android Video Source。
和
E/libARWrapper: ARController (native): ARController::startRunning(): 调用,>开始运行 E/libARWrapper: ARController (native): [error]ARController::startRunning(): >Error: 未初始化,退出,返回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)