1

以前は Jelly Bean のみで出荷されていた MC67NA で実行する Android アプリを既に作成していました。EMDK は KitKat 以降のみをサポートしていたため、すべてのバーコード スキャンを DataWedge 経由で行う必要がありました。ただし、KitKat がリリースされ、KitKat を実行しているデバイスができたので、DataWedge の代わりに EMDK を使用するようにアプリを変更しています。私の質問は、提供されているすべてのサンプルを確認して開始するのに役立ちますが、それらは単一のレイアウト/アクティビティ アプリケーションにも対応していることです。私の既存のアプリケーションには、フラグメントとビュー ページャーのコンテナーとして機能するメイン アクティビティがあります。ビューページャーでアクティブなページである場合、フラグメントのいくつかをスキャンする必要があります。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 を含めるだけでは十分ではないことがわかりました。また、マニフェストに参照とアクセス許可を追加する必要があります。したがって、このエラーが発生した場合は、マニフェストに次の 2 行があることを確認してください。

  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 に答える