J'ai cherché partout sur Internet comment inclure la bibliothèque zxing dans mon projet et j'ai trouvé ce tutoriel: http://blog.dihaw.com/integrating-zxing-in-your-Android-app-as -standalone-scanner /
Mais lorsque j'arrive au point où vous devez vérifier que BeepManager ajoute l'importation R, je rencontre toutes sortes d'erreurs dans mon projet (même sur MainActivity): il n'a pas pu trouver R.
Aussi, j'ai trouvé celui-ci https://github.com/journeyapps/zxing-Android-embedded/blob/master/README.md qui semblait beaucoup plus facile car il était intégré automatiquement par niveau, mais quand Je synchronise il apparaît une erreur qu'il n'a pas pu trouver les fichiers.
Toute aide serait appréciée :) Je suis nouveau sur Android Studio.
MODIFIER:
J'ai ajouté les paramètres de la 2ème méthode (celle avec les paramètres Gradle) à mon build.gradle et une erreur 4 apparait:
Error:Failed to find: com.embarkmobile:zxing-Android-legacy:2.0.0
Error:Failed to find: com.google.zxing:core:3.0.1
Error:Failed to find: com.embarkmobile:zxing-Android-integration:2.0.0
Error:Failed to find: com.embarkmobile:zxing-Android-minimal:2.0.0
De l'aide?
---RÉPONDRE---
Pour résoudre ce problème, je devais désactiver Offline Work on Gradle. Allez dans Android Paramètres de Studio> Télécharger> Décochez la case "Travail hors connexion". Ensuite, vous êtes prêt à partir!
Vous devez ajouter ce qui suit à votre build.gradle
fichier:
repositories {
mavenCentral()
maven {
url "http://dl.bintray.com/journeyapps/maven"
}
}
dependencies {
// Supports Android 4.0.3 and later (API level 15)
compile 'com.journeyapps:zxing-Android-embedded:2.0.1@aar'
// Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
// If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
compile 'com.journeyapps:zxing-Android-legacy:2.0.1@aar'
// Convenience library to launch the scanning and encoding Activities.
// It automatically picks the best scanning library from the above two, depending on the
// Android version and what is available.
compile 'com.journeyapps:zxing-Android-integration:2.0.1@aar'
// Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
// This mostly affects encoding, but you should test if you plan to support these versions.
// Older versions e.g. 2.2 may also work if you need support for older Android versions.
compile 'com.google.zxing:core:3.0.1'
}
Ma build.gradle
fichier comme ceci:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.myapplication2"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
maven {
url "https://raw.github.com/embarkmobile/zxing-Android-minimal/mvn-repo/maven-repository/"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:21.0.3'
// Supports Android 4.0.3 and later (API level 15)
compile 'com.embarkmobile:zxing-Android-minimal:2.0.0@aar'
// Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
// If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
compile 'com.embarkmobile:zxing-Android-legacy:2.0.0@aar'
// Convenience library to launch the scanning and encoding Activities.
// It automatically picks the best scanning library from the above two, depending on the
// Android version and what is available.
compile 'com.embarkmobile:zxing-Android-integration:2.0.0@aar'
// Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
// This mostly affects encoding, but you should test if you plan to support these versions.
// Older versions e.g. 2.2 may also work if you need support for older Android versions.
compile 'com.google.zxing:core:3.0.1'
}
Le code est ici .
Aussi, pour savoir comment l’utiliser, veuillez vous référer à ma réponse sur le Stackoverflow ici
Il contient une méthode et aussi un code simple que j'ai testé.
À partir de la version 3 de zxing-Android-embedded, il vous suffit de les ajouter à votre build.gradle
fichier:
repositories {
jcenter()
}
dependencies {
compile 'com.journeyapps:zxing-Android-embedded:3.0.2@aar'
compile 'com.google.zxing:core:3.2.0'
}
Suivez les étapes dans: https://github.com/journeyapps/zxing-Android-embedded/
Il permet maintenant également le mode portrait avec de simples modifications à la IntentIntegrator
et des moyens plus simples de personnaliser les vues.
Le moyen le plus simple d'intégrer ZXing pour la numérisation de codes à barres ou de Qr.
Pour une référence complète: Scan Barcode ZXing Android
Ajouter des dépendances
compile 'me.dm7.barcodescanner:zxing:1.9'
ScanActivity
import Android.support.v7.app.AppCompatActivity;
import Android.os.Bundle;
import Android.util.Log;
import com.google.zxing.Result;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class ScanActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{
private ZXingScannerView mScannerView;
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view
setContentView(mScannerView); // Set the scanner view as the content view
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera(); // Start camera on resume
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera(); // Stop camera on pause
}
@Override
public void handleResult(Result rawResult) {
// Do something with the result here
// Log.v("tag", rawResult.getText()); // Prints scan results
// Log.v("tag", rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode, pdf417 etc.)
MainActivity.tvresult.setText(rawResult.getText());
onBackPressed();
// If you would like to resume scanning, call this method below:
//mScannerView.resumeCameraPreview(this);
}
}
Je l'ai avec ça:
repositories { mavenCentral()
maven { url "https://raw.github.com/embarkmobile/zxing-Android-minimal/mvn-repo/maven-repository/" }
}
compile 'com.google.zxing:core:3.2.1'
compile 'com.embarkmobile:zxing-Android-minimal:2.0.0@aar'
compile 'com.embarkmobile:zxing-Android-integration:2.0.0@aar'
Je recommande d'utiliser IntentIntegrator
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.forSupportFragment(this).initiateScan();
Le requestCode revient avec IntentIntegrator.REQUEST_CODE