Integre ZXing QR code scanner sin instalar BarCode Scanner


Estoy tratando de integrar el código QR ZXing en mi aplicación Android sin instalar la aplicación de escáner de código de barras, he seguido los pasos como:

1) En primer lugar he descargado ZXing.archivo zip y extraerlo

2)abra el proyecto ZXing como un proyecto existente de android y luego vaya a la carpeta de Android y abra la carpeta de Android y también incluya core.archivo jar en el proyecto ZXing llamado CaptureActivity.

3) He utilizado el proyecto CaptureActivity como una biblioteca en mi proyecto llamado 'QRCodeSample'. (Problema al incluir CaptureActivity como una biblioteca)

4) Mi código es como abajo 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");
        }
    }
}

 }

El archivo de manifiesto es:

<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>

Y no está agregando la biblioteca también

InformaciÃ3n de la biblioteca

Cuando estoy tratando de ejecutar mi proyecto, el error msg es:

No se puede crear una instancia de activity ComponentInfo{com.qr.código/com.qr.código}: java.lang.ClassNotFoundException: com.qr.código en el cargador dalvik.sistema.PathClassLoader [/data / app / com.qr.código-1.apk]

Author: Kanika, 2011-12-01

7 answers

Finalmente tengo la respuesta,

A partir de ADT 14, los campos de recursos (como R. id.decode) ya no son constantes cuando se definen en library projects

Así que en la biblioteca ZXing->android->com.Google.zxing.cliente.androide.CaptureActivityHandler.java y DecodeHandler.java

Reemplace ambas clases switch case statements con if-else,y luego importe esta biblioteca ZXing en su proyecto..

El resto de la codificación de mi propio proyecto es el mismo...sólo el problema con las clases de la biblioteca ya que estas no se actualizan según ADT 14..

Kanika

 23
Author: Kanika,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-02 05:23:30

Para todos los usuarios de Android Studio / Gradle que hay

Bien chicos, como mi tarea hoy era integrar ZXING en una aplicación para Android y no había buenas fuentes para la entrada de todo, voy a dar una pista lo que hizo mi éxito - causa resultó ser muy fácil (en la versión 2.*).

Hay un repositorio git muy práctico que proporciona el proyecto de la biblioteca zxing Android como un AAR archivo.

Todo lo que tienes que hacer es añadir esto a tu compilación.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'
}

Y Gradle hace toda la magia para compilar el código y lo hace accesible en tu aplicación.

Para iniciar el escáner después, utilice esta clase/método:

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

Si ya has visitado el enlace verás que acabo de copiar y pegar el código desde allí el git readme. Si no ir allí para conseguir un poco más insight y ejemplos de código!

Espero ser útil para futuros lectores. Paz:)

 17
Author: Langusten Gustel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-21 18:24:39

Es necesario seguir el paso dado por el enlace

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

Puedes descargar core.jar from

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

Lo anterior está funcionando para mí, si su programa todavía acaba de poner el núcleo-2.2.jar en libs y limpiar su proyecto

 4
Author: Piyush,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-28 11:18:25

Tuve el mismo problema y después de horas luchando con él, finalmente logré resolverlo de esta manera. como Rubiraj está señalando

*Haga clic derecho en su proyecto > Propiedades > Android >(en la pestaña biblioteca) Agregue el proyecto Zxing *

Suponiendo que haya sido capaz de crear correctamente el proyecto Zxing como una biblioteca, como se explica aquí : http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

 3
Author: Pej,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-02 20:43:07

MaterialBarcodeScanner: Lector de código de barras fácil de usar para su Proyecto Android (Utiliza Google Mobile Visión API).

  1. Proporcionar dependencia de gradle

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

  2. Construir un 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. Engancharlo a un botón

    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
     startScan();
    }
    });
    
  4. ¡Empieza a escanear!

 2
Author: Rajendhiran Easu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-19 11:58:41

Paso a paso para configurar zxing 3.2.1 en eclipse

  1. Descargar zxing-master.zip desde " https://github.com/zxing/zxing "
  2. Descomprimir zxing-master.zip, Utilizar eclipse para importar "android" proyecto en zxing-master
  3. Descargar core-3.2.1.jar from " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
  4. Cree la carpeta "libs" en el proyecto "android" y pegue cor-3.2.1.jar en la carpeta libs
  5. Haga clic en el proyecto: elija " propiedades" - >"Compilador Java" para cambiar el nivel a 1.7. A continuación, haga clic en "Android" cambiar "Project build target" a Android 4.4.2+, porque el uso de 1.7 requiere compilar con Android 4.4
  6. If " CameraConfigurationUtils.java "no existe en" zxing-master / android / app/src/main/java/com/google/zxing/client/android / camera/". Puede copiarlo desde "zxing-master / android-core/src/main/java/com/google/zxing/client/ android / camera /" y pegarlo en su proyecto.
  7. Proyecto de limpieza y construcción. Si tu proyecto se muestra error sobre "switch-case", debe cambiarlos a"if - else".
  8. Terminado. Proyecto de limpieza y construcción. Puede hacer clic en" Proprties " > "Android" > haga clic en" Is Libraries " para usar en su proyecto
 1
Author: Anh Duy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-05 06:44:25
  1. Después de importar Zxing como proyecto existente, Propiedades > Java Buildpath > Marque "is library" (botón de verificación) y luego intente agregar Zxing como biblioteca.

  2. Asegúrese de que webclass.class existe en su QRcodesampleActivity.java

 0
Author: Rubiraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-22 14:44:10