3

I'm trying to add ZXing to my project (add a button which calls the scanner upon press). I found this: http://groups.google.com/group/android-developers/browse_thread/thread/788eb52a765c28b5 and of course the ZXing homesite: http://code.google.com/p/zxing/, but still couldn't figure out what to include in the project classpath to make it all work!

As for now, I copied the classes in the first link to my project (with some package name changes), and it runs but crashes after pressing the button and trying to install the barcode scanner.

Some code:

private void setScanButton(){
    Button scan = (Button) findViewById(R.id.MainPageScanButton);
    scan.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            IntentIntegrator.initiateScan(MyActivity.this);
        }
    });
}

Resulting error (from logcat):

06-13 15:26:01.540: ERROR/AndroidRuntime(1423): Uncaught handler: thread main exiting due to uncaught exception
06-13 15:26:01.560: ERROR/AndroidRuntime(1423): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://search?q=pname:com.google.zxing.client.android }

Ideas?

4

8 に答える 8

7

リンクについては、こちらをご覧ください。

バーコード スキャンをトリガーするアクティビティに含める

IntentIntegrator.initiateScan(YourActivity.this); 

また、以下も含めます。

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
            TextView 
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
};

バーコード スキャナー アプリが実際のスキャンを処理します。バーコード スキャナー アプリがインストールされていない場合、インテグレーターはアプリのインストールを促します。

----------- nEx.Software より ---------------

于 2010-10-15T05:20:37.587 に答える
3

まず、エミュレーターにはマーケットがないため、ZXing はユーザーにエミュレーターのマーケットからダウンロードするように自動的に促すことができません。バーコード スキャナー APK をエミュレーターに手動でインストールする必要があります。

第 2 に、エミュレータはカメラをエミュレートしないため、バーコード スキャナはおそらくあまり役​​に立ちません。ほとんどの場合、デバイスでこれをテストする必要があります。

于 2010-06-13T16:28:13.230 に答える
1

次のコードをマニフェスト ファイルのapplicationタグ内に追加するだけです。

 <activity
        android:name="com.google.zxing.client.android.CaptureActivity"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateAlwaysHidden" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.google.zxing.client.android.SCAN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

次に、次の権限がまだ追加されていない場合は、ファイルの先頭に追加します。

<uses-permission android:name="android.permission.CAMERA" />

于 2013-03-07T15:29:20.117 に答える
0

バーコードスキャナーアプリケーションは、この例外を発生させているエミュレーターにインストールされていません。以下のリンクは、エミュレーターにサードパーティアプリケーションをインストールする方法をステップバイステップガイドで示しています。

エミュレータにアプリケーションをインストールします

于 2013-01-08T11:36:59.610 に答える
0
  1. エミュレータ用の SD カードをオンにします。
  2. ZXing ダウンロード ページにある BarcodeScanerへのリンクをコピーします
  3. エミュレータでブラウザを開き、リンク編集ボックスをポイントします
  4. 端末とコマンドを入力し てくださいadb shell input text 'https://code.google.com/p/zxing/downloads/detail?name=BarcodeScanner-4.5.1.apk&can=2&q='- リンクは ZXing ダウンロード ページにあるリンクです
  5. ダウンロードしてインストールできるように、リンクがブラウザにコピーされました。これにより、説明されている問題が解決されます。
于 2014-01-04T21:20:09.867 に答える
0

新しく追加されたアクティビティに「 android:name 」属性を正しく指定したかどうか、AndroidManifest を確認してください。「ActivityNotFoundException」が発生しました。これは主に、別のパッケージ名を使用している可能性があり、ZXing が「com.google.zxing.client.android」パッケージ名を使用しているためです。ZXing の最初のアクティビティをロードするときは、相対パスではなく絶対クラス パスを指定します。その後、エラーは消えます。

于 2011-12-21T09:02:53.953 に答える
0

初めて zxing を使用する場合は、このプロジェクトをお勧めします* 1 *。これは zxing の一部です。必要なのはプロジェクトをインポートして実行することだけです。このプロジェクトは、Android での QR コードの操作を少し簡単にする試みです。ビジェナーに強くお勧めします。頑張ってください。最後に、Sean Owen に感謝します。

于 2013-07-29T17:35:16.283 に答える