1

我已经创建了一个在 MC67NA 上运行的 Android 应用程序,该应用程序以前仅随 Jelly Bean 一起提供。因为 EMDK 只支持 KitKat 及以上版本,所以我必须通过 DataWedge 进行所有条码扫描。但是,既然 KitKat 已经发布并且我现在有一个运行 KitKat 的设备,我正在修改应用程序以使用 EMDK 而不是 DataWedge。我的问题是,虽然我看到提供的所有示例并且它们确实有助于入门,但它们也适用于单个布局/活动应用程序。我现有的应用程序有一个主 Activity,它用作片段和视图寻呼机的容器。当它们是视图寻呼机中的活动页面时,我需要对几个片段进行扫描。DataWedge 使这变得简单,因为我不必担心任何这些,它只会扫描到具有焦点的字段。

综上所述,为此设置实施 EMDK 条码扫描器的最佳方法是什么?我知道很多人反对单例课程,但我正在考虑走这条路。在应用启动时创建一个单例来实现扫描器。然后,我可以从每个片段中将实例获取到扫描仪类并使用它。有人可以给我一些建议吗?我也不知道如何准确地在单例中注册事件处理程序(假设这是最好的方法),然后让这些事件在片段上触发。

出于各种原因,我确实想摆脱 DataWedge 并集成 EMDK。

最后,在相关的注释中,我已经开始编写这种方法并且在这一行遇到异常:

EMDKResults results = EMDKManager.GetEMDKManager(Application.Context, this);  

异常状态:

Java.Lang.ClassNotFoundException:在路径上找不到类“com.symbol.emdk.EMDKManager”:DexPathList[[zip 文件“/data/app/PocketPacTracAndroid.PocketPacTracAndroid-2.apk”],nativeLibraryDirectories=[/data/ app-lib/PocketPacTracAndroid.PocketPacTracAndroid-2, /vendor/lib, /system/lib]]

即使我包含了参考,也会发生这种情况:

在此处输入图像描述

提前致谢!

麦克风

4

1 回答 1

1

所有,为了其他可能遇到此问题的人的利益,我发现仅包含参考 dll 是不够的。您还需要将引用和权限添加到清单中。因此,如果您收到此错误,请确保您的清单中有这两行。

  1. 就在“uses-sdk”标签下方

<uses-permission android:name="com.symbol.emdk.permission.EMDK" />

  1. “应用程序”标签内部

<uses-library android:name="com.symbol.emdk" />

于 2016-08-02T17:37:41.347 回答