Интегрируйте сканер ZXING QR -кода без установки сканера штрих -кода

StackOverflow https://stackoverflow.com/questions/8340875

Вопрос

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

1) Во -первых, я загрузил файл zxing.zip и его извлекла

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

3) Я использовал проект Capturectivity в качестве библиотеки в моем проекте под названием «qrcodesample». (Проблема в включении каппеактивности как библиотеки)

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

Когда я пытаюсь запустить свой проект, ошибка MSG:

Невозможно создать экземпляры ComponentInfo {com.qr.code/com.qr.code}: java.lang.classnotfoundexception: com.qr.code в загрузке dalvik.system.pathclassloader [/data/app/com.qr.code-1 .APK

Это было полезно?

Решение

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

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

Итак, в ZXING Library-> Android-> com.google.zxing.client.android.captureactivityhandler.java и decodehandler.java

Замените оба этих класса переключить операторы корпуса IF-ELSE, а затем импортируйте эту библиотеку ZXING в свой проект.

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

Каника

Другие советы

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

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

Существует настоящий удобный репозиторий GIT, который обеспечивает проект библиотеки Android ZXING в качестве архива 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:1.2.1@aar'
}

и Gradle делает все волшебство, чтобы скомпилировать код, и делает его доступным в вашем приложении.

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

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

Если вы уже посетили ссылку, вы увидите, что я просто скопировал и вставил код оттуда Git Readme. Если не пойти туда, чтобы получить еще немного понимания и примеров кода!

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

Вам нужно перейти на шаг, как указано по ссылке

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 в LIBS и очистите свой проект

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

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

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

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

  1. Обеспечить зависимость Градли

    Compile 'com.edwardvanraak: Materialbarcodescanner: 0,0,6-альфа'

  2. Построить материал, Barcodescanner

    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. Начните сканирование!

Шаг за шагом к настройке ZXING 3.2.1 в Eclipse

  1. Скачать zxing-master.zip из "https://github.com/zxing/zxing"
  2. Unzip zxing-master.zip, используйте проект Eclipse для импорта «Android» в Zxing-Master
  3. Скачать Core-3.2.1.jar от "http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1.1/"
  4. Создать папку "Libs" в "Android" проект "и вставьте 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», вы должны изменить их на «если - иначе».
  8. Завершенный. Очистить и построить проект. Вы можете нажать на «Proprties»> «Android»> нажмите «Is Libraries», чтобы использовать для вашего проекта
  1. После импорта ZXING в качестве существующего проекта свойства> Java BuildPath> Проверьте «библиотека» (кнопка проверки), а затем попытайтесь добавить ZXING в качестве библиотеки.

  2. Убедиться webclass.class существуют в вашем QRcodesampleActivity.java

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top