【发布时间】:2020-01-26 10:53:36
【问题描述】:
我正在开发一个 AR 应用程序,使用 Vuforia 用于模型目标,Zxing 用于 QR 码扫描。
我已按照 Vuforia 页面上的说明设置项目。虽然我在 Playmode 中一切正常,但是一旦我构建它,尽管构建时没有编译错误,但它无法设置帧格式。
我正在使用:
- 团结 2018.4.8f1
- Vuforia 8.3.8
- .Net 4.7
我尝试了不同的帧格式,授予了统一管理员权限,关闭了病毒扫描程序
private IEnumerator camInitializing()
{
//Wait for vuforia to initialize
yield return new WaitForSeconds(4);
if (CameraDevice.Instance == null)
{
Debug.LogError("No Instance of Camera could be found");
}
Debug.LogError( CameraDevice.Instance.IsActive());
availableFormat = PIXEL_FORMAT.RGBA8888;
if (!CameraDevice.Instance.SetFrameFormat(PIXEL_FORMAT.RGBA8888,true))
{
availableFormat = PIXEL_FORMAT.RGB888;
if (!CameraDevice.Instance.SetFrameFormat(PIXEL_FORMAT.RGB888,true))
{
availableFormat = PIXEL_FORMAT.RGB565;
if (!CameraDevice.Instance.SetFrameFormat(PIXEL_FORMAT.RGB565, true))
{
availableFormat = PIXEL_FORMAT.GRAYSCALE;
if (!CameraDevice.Instance.SetFrameFormat(PIXEL_FORMAT.GRAYSCALE, true))
{
availableFormat = PIXEL_FORMAT.UNKNOWN_FORMAT;
Debug.LogError("Couldnt Initiate Camera Format");
}
}
}
}
var isAutoFocus = CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
if (!isAutoFocus)
{
CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_NORMAL);
}
Debug.Log("QR Scanner ready");
_isInitialized = true;
DecoderThread = new Thread(decode);
DecoderThread.Name = "T0, _decoder";
DecoderThread.Start();
pauseThread = true;
}
程序应该在几秒钟后启动并初始化帧格式,这样我就可以调用 getCamerImage 来获取要解码的图像。无法设置导致 GetCameraImage 错误的 FrameFormat。在 Visual Studio 中构建解决方案时我发现的两个错误是:
在 0x773DFD82 (KernelBase.dll) 处抛出异常 zXingVuforiaTest.exe:WinRT 发起错误 - 0x80040111: 'Windows.UI.WindowManagement.DisplayRegion'。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\viewpositiontrackerinternal.h(94)\Windows.Devices.Sensors.dll!1FE833ED: (调用者:1FE8240F)异常(11)tid(17f0)80040111 ClassFactory kann angeforderte Klasse nicht liefern 在 0x773DFD82 中引发异常 zXingVuforiaTest.exe:Microsoft C++ 异常:wil::ResultException at 内存位置 0x0C53CA78。在 0x773DFD82 处抛出异常 zXingVuforiaTest.exe:Microsoft C++ 异常:[rethrow] 在内存中 位置 0x00000000。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\sensor.cpp(179)\Windows.Devices.Sensors.dll!1FE7F4AC: (调用者:1FE7B61C)异常(12)tid(17f0)80070490元素nicht 格芬登。 zXingVuforiaTest.exe 在 0x773DFD82 处抛出异常: Microsoft C++ 异常:内存位置的 wil::ResultException 0x0C53CCC0。 zXingVuforiaTest.exe 在 0x773DFD82 处抛出异常: Microsoft C++ 异常:[rethrow] 在内存位置 0x00000000。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\sensorserver.cpp(46)\Windows.Devices.Sensors.dll!1FE78581: (来电者:1FE7593F)ReturnHr(7) tid(17f0) 80070490 元素 nicht 格芬登。线程 0x48a8 以代码 0 (0x0) 退出。例外 在 zXingVuforiaTest.exe 中的 0x773DFD82 (KernelBase.dll) 处抛出:WinRT 起源错误 - 0x80040111: 'Windows.UI.WindowManagement.DisplayRegion'。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\viewpositiontrackerinternal.h(94)\Windows.Devices.Sensors.dll!1FE833ED: (调用者:1FE8240F)异常(13)tid(17f0)80040111 ClassFactory kann angeforderte Klasse nicht liefern 在 0x773DFD82 中引发异常 zXingVuforiaTest.exe:Microsoft C++ 异常:wil::ResultException at 内存位置 0x0C53CA48。在 0x773DFD82 处抛出异常 zXingVuforiaTest.exe:Microsoft C++ 异常:[rethrow] 在内存中 位置 0x00000000。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\sensor.cpp(179)\Windows.Devices.Sensors.dll!1FE7F4AC: (调用者:1FE7B61C)异常(14)tid(17f0)80070490元素nicht 格芬登。 zXingVuforiaTest.exe 在 0x773DFD82 处抛出异常: Microsoft C++ 异常:内存位置的 wil::ResultException 0x0C53CC90。 zXingVuforiaTest.exe 在 0x773DFD82 处抛出异常: Microsoft C++ 异常:[rethrow] 在内存位置 0x00000000。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\sensorserver.cpp(46)\Windows.Devices.Sensors.dll!1FE78581: (来电者:1FE7593F)ReturnHr(8) tid(17f0) 80070490 元素 nicht 格芬登。在 0x773DFD82 (KernelBase.dll) 中引发异常 zXingVuforiaTest.exe:WinRT 发起错误 - 0x80040111: 'Windows.UI.WindowManagement.DisplayRegion'。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\viewpositiontrackerinternal.h(94)\Windows.Devices.Sensors.dll!1FE833ED: (调用者:1FE8240F)异常(15)tid(17f0)80040111 ClassFactory kann angeforderte Klasse nicht liefern 在 0x773DFD82 中引发异常 zXingVuforiaTest.exe:Microsoft C++ 异常:wil::ResultException at 内存位置 0x0C53CAB8。在 0x773DFD82 处抛出异常 zXingVuforiaTest.exe:Microsoft C++ 异常:[rethrow] 在内存中 位置 0x00000000。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\sensor.cpp(179)\Windows.Devices.Sensors.dll!1FE7F4AC: (调用者:1FE7B61C)异常(16)tid(17f0)80070490元素nicht 格芬登。 zXingVuforiaTest.exe 在 0x773DFD82 处抛出异常: Microsoft C++ 异常:内存位置的 wil::ResultException 0x0C53CD00。 zXingVuforiaTest.exe 在 0x773DFD82 处抛出异常: Microsoft C++ 异常:[rethrow] 在内存位置 0x00000000。 onecoreuap\drivers\mobilepc\sensors\convergence\api\winrt\public\internal\sensorserver.cpp(46)\Windows.Devices.Sensors.dll!1FE78581: (来电者:1FE7593F)ReturnHr(9) tid(17f0) 80070490 元素 nicht 格芬登。设置帧格式失败
并且在某些本地 Vuforia 代码:int32_t returnValue = il2cppPInvokeFunc(____licenseKey0_marshaled 它会停止调试,因为某些访问被拒绝
【问题讨论】:
-
"Ausnahme ausgelöst" 这就是为什么将技术术语翻译成德语是违法的。
-
是的,在那之后我把语言改成了英语更愉快
标签: c# unity3d qr-code zxing vuforia