Подтвердить что ты не робот

Интеграция сканера QR-кода ZXing без установки BarCode Scanner

Я пытаюсь интегрировать QR-код ZXing в мое приложение Android без установки приложения BarCode Scanner, я выполнил следующие шаги:

1) Сначала я загрузил файл ZXing.zip и извлек его

2) откройте проект ZXing как существующий проект android, а затем перейдите в папку android и откройте папку android, а также включите файл core.jar в проект ZXing с именем CaptureActivity.

3) Я использовал проект CaptureActivity в качестве библиотеки в моем проекте с именем "QRCodeSample". (Проблема с включением 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. код-1.apk]

4b9b3361

Ответ 1

Наконец, я получил ответ,

Начиная с ADT 14 поля ресурсов (такие как R.id.decode) больше не являются константами, когда они определены в проектах библиотеки

Итак, в библиотеке ZXing- > android- > com.google.zxing.client.android.CaptureActivityHandler.java и DecodeHandler.java

Замените оба этих класса на оператора case с if-else, а затем импортируйте эту библиотеку ZXing в свой проект.

Остальная часть кода моего проекта такая же... просто проблема с библиотечными классами, поскольку они не обновляются, как в соответствии с ADT 14..

Каника

Ответ 2

Для всех тех пользователей Android Studio/ Gradle

Хорошо, ребята, поскольку моя задача сегодня состояла в том, чтобы интегрировать ZXING в приложение для Android и не было никаких хороших источников для ввода, я дам вам подсказку, из-за которой я был успешным - , потому что это оказалось очень легко (на версии 2. *).

Существует реальный удобный репозиторий git, который предоставляет проект библиотеки zxing android как архив AAR.

Все, что вам нужно сделать, это добавить это в свой build.gradle

repositories {
    mavenCentral()

    maven {
        url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
    }
}

dependencies {
    compile 'com.google.zxing:core:2.2'
    compile 'com.embarkmobile:zxing-android-minimal:[email protected]'
}

и Gradle делает всю магию для компиляции кода и делает его доступным в вашем приложении.

Чтобы запустить сканер впоследствии, используйте этот класс/метод:

IntentIntegrator.initiateScan(this);    // `this` is the current Activity

Если вы уже посетили эту ссылку, вы увидите, что я просто скопировал и наклеил код отсюда git readme. Если вы не пойдете туда, чтобы получить более подробные примеры и примеры кода!

Надеемся, что это будет полезно для будущих читателей. Мир:)

Ответ 4

У меня была одна и та же проблема, и после нескольких часов борьбы с ней я, наконец, смог ее решить. как Рубрайдж указывает

* Щелкните правой кнопкой мыши на своем проекте > Свойствa > Android > (в библиотеке вкладок) Добавьте проект Zxing *

Предполагая, что вы смогли правильно создать проект Zxing как библиотеку, как это объясняется здесь: http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

Ответ 5

MaterialBarcodeScanner: простой в использовании считыватель штрих-кода для вашего Android-проекта (используется API Google Mobile Vision).

  • Укажите gradle зависимость

    compile 'com.edwardvanraak: MaterialBarcodeScanner: 0.0.6-ALPHA'

  • Создайте 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();
    }
    
  • Подключите его к кнопке

    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
     startScan();
    }
    });
    
  • Начать сканирование!

Ответ 6

Шаг за шагом, чтобы установить zxing 3.2.1 в eclipse

  • Загрузить zxing-master.zip с " https://github.com/zxing/zxing"
  • Unzip zxing-master.zip, используйте eclipse для импорта проекта "android" в zxing-master
  • Загрузите core-3.2.1.jar из http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
  • Создайте папку "libs" в проекте "android" и вставьте cor-3.2.1.jar в папку libs
  • Нажмите на проект: выберите "свойства" → "Компилятор Java", чтобы изменить уровень до 1.7. Затем нажмите на "Android" change "Project build target" на Android 4.4.2+, потому что использование 1.7 требует компиляции с Android 4.4
  • Если "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/" и вставить в свой проект.
  • Очистить и построить проект. Если в вашем проекте отображается ошибка "switch-case", вы должны изменить их на "if-else".
  • Завершено. Очистить и построить проект. Вы можете нажать "Proprties" > "Android" > нажать "Библиотеки" для использования в вашем проекте.

Ответ 7

  • После импорта Zxing в качестве существующего проекта Properties > Java Buildpath > Check "is library" (кнопка check), а затем попробуйте добавить Zxing в качестве библиотеки.

  • Убедитесь, что webclass.class существует в QRcodesampleActivity.java