26

BarCode Scannerアプリをインストールせずに、ZXing QRコードをAndroidアプリに統合しようとしていますが、次の手順に従いました。

1)まず、ZXing.zipファイルをダウンロードして解凍しました

2)ZXingプロジェクトをandroidの既存のプロジェクトとして開き、次にandroidフォルダーに移動してandroidフォルダーを開き、core.jarファイルをCaptureActivityという名前のZXingプロジェクトに含めます。

3)「QRCodeSample」という名前のプロジェクトで、CaptureActivityプロジェクトをライブラリとして使用しました。(CaptureActivityをライブラリとして含める際の問題)

4)私のコードは以下のとおりです3:

   public class QRCodeSampleActivity extends Activity {
Button b1;
static String contents;

public static final int REQUEST_CODE = 1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    b1 = (Button) findViewById(R.id.button1);
    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            /*Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
                    "QR_CODE_MODE");
            startActivityForResult(intent, 0);*/
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);


        }
    });
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.i("Barcode Result", contents);
            Intent i1 = new Intent(QRCodeSampleActivity.this, webclass.class);
            startActivity(i1);
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
            Log.i("Barcode Result","Result canceled");
        }
    }
}

 }

マニフェストファイルは次のとおりです。

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

     <activity android:name="com.google.zxing.client.android.CaptureActivity"
           android:screenOrientation="landscape"
           android:configChanges="orientation|keyboardHidden"
           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.DEFAULT"/>
           </intent-filter>
           <intent-filter>
              <action android:name="com.google.zxing.client.android.SCAN"/>
              <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>


    </activity>
    <activity
        android:label="@string/app_name"
        android:name=".QRCodeSampleActivity" >
       <intent-filter >
            <action android:name="android.intent.action.MAIN" />

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

    </activity>


    <activity  android:name=".webclass"></activity>

</application>

</manifest>

そしてそのライブラリも追加しません

LibraryInformation

プロジェクトを実行しようとすると、エラーメッセージは次のようになります。

アクティビティをインスタンス化できませんComponentInfo{com.qr.code/ com.qr.code}:java.lang.ClassNotFoundException:ローダー内のcom.qr.code dalvik.system.PathClassLoader [/data/app/com.qr.code-1 .apk]

4

7 に答える 7

23

やっと答えが出たので、

ADT 14 の時点で、リソース フィールド (R.id.decode など) は、ライブラリ プロジェクトで定義された場合、定数ではなくなりました。

したがって、ZXingライブラリ-> android-> com.google.zxing.client.android.CaptureActivityHandler.javaおよびDecodeHandler.java

これらのクラスの両方の switch case ステートメントを if-else に置き換えてから、この ZXing ライブラリをプロジェクトにインポートします。

私自身のプロジェクトの残りのコーディングは同じです... ADT 14に従って更新されていないため、ライブラリクラスの問題だけです..

カニカ

于 2011-12-02T05:23:30.093 に答える
3

リンクで指定された手順に従う必要があります

http://www.androidaz.com/development/zxing-qr-reader-direct-integration

からcore.jarをダウンロードできます

http://repo1.maven.org/maven2/com/google/zxing/core/2.2/

あなたのプログラムがまだcore-2.2.jarをライブラリに入れ、プロジェクトをクリーンアップしている場合、上記は私にとってはうまくいきます

于 2013-09-28T11:18:25.697 に答える
3

私は同じ問題を抱えていましたが、何時間も苦労した後、最終的にこのように解決することができました。ルビラージが指摘しているように

*プロジェクトを右クリック > [プロパティ] > [Android] > (タブ ライブラリの下) Zxing プロジェクトを追加します *

ここで説明されているように、 Zxingプロジェクトをライブラリとして正しく作成できたと仮定します。 ネイティブ使用日食/

于 2013-01-02T20:43:07.147 に答える
2

MaterialBarcodeScanner: Android プロジェクト用の使いやすいバーコード リーダー (Google Mobile Vision API を使用)。

  1. gradle の依存関係を提供する

    「com.edwardvanraak:MaterialBarcodeScanner:0.0.6-ALPHA」をコンパイルします

  2. MaterialBarcodeScanner を構築する

    private void startScan() {
        /**
         * Build a new MaterialBarcodeScanner
         */
        final MaterialBarcodeScanner mBarcodeScanner 
                 = new MaterialBarcodeScannerBuilder()
                .withActivity(MainActivity.this)
                .withEnableAutoFocus(true)
                .withBleepEnabled(true)
                .withBackfacingCamera()
                .withText("Scanning...")
                .withResultListener(new MaterialBarcodeScanner.OnResultListener() {
                    @Override
                    public void onResult(Barcode barcode) {
                        barcodeResult = barcode;
                        result.setText(barcode.rawValue);
                    }
                })
                .build();
        mBarcodeScanner.startScan();
    }
    
  3. ボタンに引っ掛ける

    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
     startScan();
    }
    });
    
  4. スキャン開始!

于 2016-08-19T09:14:49.263 に答える
1

Eclipseでzxing 3.2.1をセットアップするためのステップバイステップ

  1. 「 https://github.com/zxing/zxing」から zxing-master.zip をダウンロードします。
  2. zxing-master.zip を解凍し、eclipse を使用して「android」プロジェクトを zxing-master にインポートします。
  3. 「 http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/」から core-3.2.1.jar をダウンロードします。
  4. 「android」プロジェクトに「libs」フォルダーを作成し、cor-3.2.1.jar を libs フォルダーに貼り付けます。
  5. プロジェクトをクリックします。「プロパティ」->「Java コンパイラ」を選択して、レベルを 1.7 に変更します。次に、[Android] をクリックして、[プロジェクトのビルド ターゲット] を Android 4.4.2+ に変更します。これは、1.7 を使用するには Android 4.4 でコンパイルする必要があるためです。
  6. 「CameraConfigurationUtils.java」が「zxing-master/android/app/src/main/java/com/google/zxing/client/android/camera/」に存在しない場合。「zxing-master/android-core/src/main/java/com/google/zxing/client/android/camera/」からコピーして、プロジェクトに貼り付けることができます。
  7. プロジェクトをクリーンアップしてビルドします。プロジェクトで「switch - case」に関するエラーが表示される場合は、「if - else」に変更する必要があります。
  8. 完成しました。プロジェクトをクリーンアップしてビルドします。「Proprties」>「Android」>「Is Libraries」をクリックして、プロジェクトに使用できます
于 2015-11-05T06:44:25.390 に答える
0
  1. Zxing を既存のプロジェクトとしてインポートした後、[プロパティ] > [Java Buildpath] > [is library] (チェック ボタン) をチェックし、Zxing をライブラリとして追加してみます。

  2. webclass.classあなたの中に存在することを確認してくださいQRcodesampleActivity.java

于 2012-03-22T04:27:52.493 に答える