首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动设置SCAN_WIDTH和SCAN_HEIGHT会导致ZXing崩溃

手动设置SCAN_WIDTH和SCAN_HEIGHT会导致ZXing崩溃
EN

Stack Overflow用户
提问于 2015-01-08 17:32:24
回答 1查看 815关注 0票数 0

我正在使用流行的ZXing项目在我的安卓应用程序上启用条形码扫描。

我想手动设置取景器的宽度和高度,所以我使用了以下方法:

代码语言:javascript
复制
intent.putExtra("SCAN_WIDTH", 400);
intent.putExtra("SCAN_HEIGHT", 300);

在发送我的意图之前。然而,由于NullPointerExceptionCameraManager.java的第279行,应用程序崩溃了。我做了一些调试,看起来configManagerconfigManager成员从未初始化过。我调试了更多,以发现surfaceCreated()没有及时调用(这应该通过回调来完成)。至少,这在我看来是一样的,因为surfaceCreated() in CaptureActivity.java负责初始化configManager的那些成员。我在这里和谷歌上做了一些搜索,但似乎人们并没有使用那些意图附加的SCAN_WIDTHSCAN_HEIGHT。它们正在手动设置MINMAX宽度/高度值,这是我试图避免的ZXing代码中的值。任何帮助都将不胜感激。

当我没有通过意图设置那些宽度/高度值时,扫描仪工作得很好。

编辑:更新了我的ZXing库版本后,这不再是一个问题了。它还解决了我与2012年Nexus 7的前置摄像头问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 19:54:49

screenResolution无疑是在initFromCameraParameters中设置的。当司机打开的时候就会发生。如果surfaceCreated发生得晚了一点,也可以,因为onResume方法在创建曲面之后注册一个回调来初始化相机,如果它还没有可用的话。

即使没有初始化,onResume也会调用setManualFramingRect,但在这种情况下,它只会将请求保存在requestedFramingRectWidthrequestedFramingRectHeight中,并在稍后进行设置。

我认为这个案子处理得很正确,但我不能百分之百地肯定没有疏忽。也许你可以说出更多关于你认为问题在哪里给出的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27846130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档