Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ARToolKit-无法添加NFT标记,未知标记类型_Java_Android_Artoolkit - Fatal编程技术网

Java ARToolKit-无法添加NFT标记,未知标记类型

Java ARToolKit-无法添加NFT标记,未知标记类型,java,android,artoolkit,Java,Android,Artoolkit,我正在Android上使用ARToolKit示例应用程序ARSimple。与其让它跟踪hiro标记,我想跟踪NFT标记。因此,我使用: int testMarker = ARToolKit.getInstance().addMarker("2d;data/nft/Test.jpg"); 根据文档,这是添加NFT标记的正确方法(除非我遗漏了什么) 这将提供以下输出: E/libARWrapper: ARController (native): [error]Error: Unknown mark

我正在Android上使用ARToolKit示例应用程序ARSimple。与其让它跟踪hiro标记,我想跟踪NFT标记。因此,我使用:

int testMarker = ARToolKit.getInstance().addMarker("2d;data/nft/Test.jpg");
根据文档,这是添加NFT标记的正确方法(除非我遗漏了什么)

这将提供以下输出:

E/libARWrapper: ARController (native): [error]Error: Unknown marker type '2d' in config '2d;data/nft/Test.jpg'.
E/libARWrapper: ARController (native): [error]Error: Failed to load marker.
这似乎表明这不是正确的做法。那么如何添加NFT标记呢

编辑:

应用Thor_Bux答案的更改后,我的代码变为:

public boolean configureARScene() {
    pinballMarker = ARToolKit.getInstance().addMarker("nft;data/pinball");

    if (pinballMarker == -1) return false;

    return true;
}
文件
pinball.fset
pinball.fset3
pinball.iset
位于我的
assets/Data
目录中

错误消息如下所示:

E/libar: Error: unable to open file 'data/pinball.iset' for reading.
E/libar: Error opening file 'data/pinball.iset'.
E/libARWrapper: ARController (native): [error]Error reading data from data/pinball.fset
E/libARWrapper: ARController (native): [error]Error: Failed to load marker.
编辑:

按照Thor_Bux的建议卸载应用程序后,将配置更改为
nft;数据/弹球
,标记器加载。但仍有一条错误消息:

E/libARWrapper: ARController (native): [error]Loading Data/pinball.fset.
I/libar: ### Surface No.1 ###
I/libar:   Read ImageSet.
I/libar: Imageset contains 8 images.
D/Camera-JNI: Using callback buffer from queue of length 9
D/Camera-JNI: Using callback buffer from queue of length 8
D/Camera-JNI: Using callback buffer from queue of length 7
D/Camera-JNI: Using callback buffer from queue of length 6
D/Camera-JNI: Using callback buffer from queue of length 5
D/Camera-JNI: Using callback buffer from queue of length 4
D/Camera-JNI: Using callback buffer from queue of length 3
D/Camera-JNI: Using callback buffer from queue of length 2
D/Camera-JNI: Using callback buffer from queue of length 1
D/Camera-JNI: Out of buffers, clearing callback!
I/libar:     end.
I/libar:   Read FeatureSet.
I/libar:     end.
E/libARWrapper: ARController (native): [info]First NFT marker added; enabling NFT marker detection.
E/libARWrapper: ARController (native): [info]Added marker (UID=0), total markers loaded: 1.

即使标记似乎已成功加载,但未使用
queryMarkerVisible()
检测到它。此外,尽管场景已成功配置,但似乎从未调用过
SimpleRenderer#draw()

从前面的对话中,您似乎正在使用此示例代码,并希望更改此代码行以使其跟踪NFT标记:

您还声明已创建所需的NFT.fset和.iset文件,如下所述:

现在需要做的是将fset和iset文件添加到项目的“assets/Data/”目录中。(就在hiro.patt旁边)

然后将上述代码行更改为:
nft;数据/弹球
此处记录了:


希望这有帮助

ARToolKit5或ARToolKit6?ARToolKit5。我无法进入ARToolKit6的测试版。Artk5不支持jpg。您需要使用providet工具按照nft标记创建fset和iset文件。明天我可以记录一个详细的解决方案。我已经生成了这些解决方案。我需要的是一种从它们创建标记的方法。我将非常感谢详细解决这一问题;您可以不创建fset和iset文件。现在我遇到另一个错误:E/libar:error:无法打开文件“data/pinball.iset”进行读取。E/libar:打开文件“data/pinball.iset”时出错。E/libARWrapper:ARController(本机):[error]从data/pinball.fset读取数据时出错E/libARWrapper:ARController(本机):[error]错误:加载标记失败。请将新配置和错误添加到标记为“编辑”的问题中。然后其他人也可以跟进。为了进一步帮助您,我需要看看您的代码现在是什么样子。Android正在缓存assets目录,有时不更新。从手机中删除该应用,然后重试。检查路径是否正确卸载应用程序帮助,但我必须更改
nft;数据/弹球
nft;数据/弹球
。仍然无法正常工作,请更新问题@托尔布克斯