Question

Je suis en train d'intégrer ZXing QR Code dans mon application Android sans installer l'application Barcode Scanner, j'ai suivi les étapes:

1) Tout d'abord j'ai téléchargé le fichier ZXing.zip et l'extraire

2) ouvrir le projet ZXing comme un androïde projet existant puis allez dans le dossier android et ouvrez le dossier Android et inclure également le fichier core.jar dans le projet ZXing nommé CaptureActivity.

3) Je l'ai utilisé le projet CaptureActivity comme une bibliothèque dans mon projet nommé « QRCodeSample ». (Problème en incluant CaptureActivity comme une bibliothèque)

4) Mon code est comme ci-dessous3:

   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");
        }
    }
}

 }

Le fichier manifeste est:

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

et sa bibliothèque non ajouter aussi

LibraryInformation

Quand je suis en train d'exécuter mon projet, le msg d'erreur est:

Impossible d'activité instancier ComposantInfo {com.qr.code / com.qr.code}: java.lang.ClassNotFoundException: com.qr.code dans le chargeur dalvik.system.PathClassLoader [/data/app/com.qr. Code-1.apk]

Était-ce utile?

La solution

Enfin, je suis la réponse,

Comme d'ADT 14, les champs de ressources (comme R.id.decode) sont des constantes ne sont plus lorsqu'elles sont définies dans des projets de bibliothèque

dans le ZXing Library-> Android-> com.google.zxing.client.android.CaptureActivityHandler.java et DecodeHandler.java

Remplacer ces deux catégories de cas passer des déclarations avec if-else, puis importer cette bibliothèque ZXing dans votre projet ..

Reste du codage de mon propre projet est le même ... juste le problème avec les classes de bibliothèque que ceux-ci ne sont pas mis à jour comme selon ADT 14 ..

Kanika

Autres conseils

Pour tous les utilisateurs Android Studio / Gradle là-bas

Bon les gars, comme ma tâche aujourd'hui est d'intégrer ZXing dans une application Android et il n'y avait pas de bonnes sources pour l'entrée partout, je vous donnerai était un indice ce qui a fait mon succès - car il est avéré être très facile (sur la version 2. *).

Il y a un vrai dépôt git pratique qui fournit le projet de bibliothèque android ZXing comme une archive AAR.

Tout ce que vous avez à faire est d'ajouter ceci à votre 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'
}

et Gradle fait toute la magie pour compiler le code et le rend accessible dans votre application.

Pour démarrer le scanner après, utiliser cette classe / méthode:

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

Si vous avez déjà visité le lien que tu vas voir que je viens de copier et collé le code à partir de là le readme git. Si ne pas y aller pour obtenir quelques exemples insight et le code!

L'espoir d'être utile pour les lecteurs futurs. Paix:)

Vous devez suivre étape donnée par le lien

http://www.androidaz.com/development/zxing- qr-lecteur direct-intégration

vous pouvez télécharger à partir core.jar

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

Le ci-dessus fonctionne pour moi, si votre programme encore vient de mettre le noyau 2.2.jar dans libs et nettoyer votre projet

J'ai eu le même problème et après les heures aux prises avec elle, je finalement réussi à le résoudre comme celui-ci. comme Rubiraj pointe

* Clic droit sur votre projet> Propriétés> Android> (sous la bibliothèque tab) Ajouter le projet ZXing *

En supposant que vous avez pu créer correctement projet ZXing comme une bibliothèque comme il est expliqué ici: http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

MaterialBarcodeScanner. Lecteur de code à barres facile d'utilisation pour votre projet Android (Google Mobile utilise l'API Vision)

  1. Fournir gradle dépendance

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

  2. Construire 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. le brancher à un bouton

    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
     startScan();
    }
    });
    
  4. Lancer la numérisation!

étape par étape pour la configuration ZXing 3.2.1 dans Eclipse

  1. Télécharger zxing-master.zip de " https://github.com/zxing/zxing"
  2. Décompressez zxing-master.zip, utiliser Eclipse pour importer "android" projet ZXing-maître
  3. Télécharger core-3.2.1.jar de « http : //repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ "
  4. Créer "libs" dossier dans le projet "Android" et collez-cor 3.2.1.jar dans le dossier libs
  5. Cliquez sur le projet: choisissez « Propriétés » -> « compilateur Java » pour changer le niveau de 1,7. Cliquez ensuite sur « Android » changement « cible build projet » android 4.4.2+, parce que l'utilisation 1.7 nécessite la compilation avec Android 4.4
  6. Si "CameraConfigurationUtils.java" n'existe pas dans "ZXing-maître / android / app / src / main / java / com / google / ZXing / client / android / appareil photo /". Vous pouvez le copier à partir de "ZXing-maître / android-core / src / main / java / com / google / ZXing / client / android / appareil photo /" coller à votre projet.
  7. propre et projet de construction. Si votre erreur show projet de « switch - cas », vous devez les changer pour « si - autre ».
  8. Terminé. projet de nettoyage et de construction. Vous pouvez cliquer sur « proprties »> « Android »> cliquez sur « bibliothèques est » d'utiliser pour votre projet
  1. Après avoir importé ZXing comme projet existant, Propriétés> Java Buildpath> Cochez la case "est une bibliothèque" (bouton de contrôle) et puis essayez d'ajouter ZXing comme bibliothèque.

  2. Assurez-vous de exist webclass.class dans votre QRcodesampleActivity.java

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top