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
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]
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
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:)
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
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/
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).
-
Proporcionar dependencia de gradle
Compile ' com.edwardvanraak: MaterialBarcodeScanner: 0.0.6-ALPHA '
-
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(); }
-
Engancharlo a un botón
fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startScan(); } });
¡Empieza a escanear!
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
- Descargar zxing-master.zip desde " https://github.com/zxing/zxing "
- Descomprimir zxing-master.zip, Utilizar eclipse para importar "android" proyecto en zxing-master
- Descargar core-3.2.1.jar from " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
- Cree la carpeta "libs" en el proyecto "android" y pegue cor-3.2.1.jar en la carpeta libs
- 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
- 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.
- Proyecto de limpieza y construcción. Si tu proyecto se muestra error sobre "switch-case", debe cambiarlos a"if - else".
- Terminado. Proyecto de limpieza y construcción. Puede hacer clic en" Proprties " > "Android" > haga clic en" Is Libraries " para usar en su proyecto
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
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.
Asegúrese de que
webclass.class
existe en suQRcodesampleActivity.java
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