Domanda

Sto cercando di integrare ZXing QR Code nella mia app Android senza installare Barcode Scanner app, ho seguito i passaggi:

1) In primo luogo Ho scaricato il file ZXing.zip ed estrarlo

2) aprire il progetto ZXing come un progetto esistente Android e poi andare nella cartella Android e aprire la cartella Android e includere anche il file core.jar nel progetto denominato ZXing CaptureActivity.

3) Ho usato il progetto CaptureActivity come libreria nel mio progetto denominato 'QRCodeSample'. (Problema nel compresa CaptureActivity come una libreria)

4) Il mio codice è il below3:

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

 }

Il file manifesto è:

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

e la sua biblioteca non aggiungendo anche

LibraryInformation

Quando sto cercando di eseguire il mio progetto, il msg di errore è:

Impossibile attività instantiate ComponentInfo {com.qr.code / com.qr.code}: java.lang.ClassNotFoundException: com.qr.code nel loader dalvik.system.PathClassLoader [/data/app/com.qr. code-1.apk]

È stato utile?

Soluzione

Finalmente ho avuto la risposta,

Come di ADT 14, i campi di risorse (come R.id.decode) sono costanti più quando definito nei progetti della biblioteca

Così, alla biblioteca-ZXing> Android-> com.google.zxing.client.android.CaptureActivityHandler.java e DecodeHandler.java

Sostituire entrambe queste classi di passare istruzioni case con if-else, e quindi importare questa libreria ZXing nel progetto ..

Il resto della codifica del mio progetto è lo stesso ... solo il problema con le classi della libreria in quanto questi non vengono aggiornati in base in base alla ADT 14 ..

Kanika

Altri suggerimenti

Per tutti gli utenti Android Studio / Gradle là fuori

Ok ragazzi, come il mio compito oggi è stato quello di integrare ZXING in un'applicazione Android e non c'erano buone fonti per l'ingresso in tutto, io vi darà un suggerimento ciò che ha reso il mio successo - causa che si è rivelata molto facile (nella versione 2. *).

C'è un vero e proprio repository git pratico che offre il progetto della libreria Android ZXing come un archivio AAR.

Tutto quello che dovete fare è aggiungere questo alla tua 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'
}

e Gradle fa tutta la magia per compilare il codice e lo rende accessibile nella vostra app.

Per avviare lo scanner in seguito, utilizzare questa classe / metodo:

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

Se hai già visitato il link andando vedere che ho basta copiare e incollato il codice da lì il readme git. Se non va lì per prendere un po 'più chiaro e esempi di codice!

Spero di essere utile per i lettori futuri. Pace:)

È necessario seguire passo, come indicato dal link

http://www.androidaz.com/development/zxing- qr-reader-integrazione diretta

che è possibile scaricare da core.jar

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

È possibile che questo sta lavorando per me, se il programma ancora solo mettere il core-2.2.jar in librerie e la pulizia del progetto

Ho avuto lo stesso problema e dopo ore alle prese con essa sono finalmente riuscito a risolvere in questo modo. come Rubiraj sta puntando

* click destro sul vostro progetto> Proprietà> Android> (in biblioteca scheda) Aggiungere il progetto ZXing *

Dando per scontato che sono stati in grado di creare in modo corretto progetto ZXing come una libreria, come è spiegato qui: http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

MaterialBarcodeScanner:. Facile da utilizzare lettore codice a barre per il progetto Android (Usi Google Mobile Vision API)

  1. Fornire Gradle dipendenza

    di compilazione 'com.edwardvanraak: MaterialBarcodeScanner: 0.0.6-ALPHA'

  2. Costruire 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. collegarlo ad un pulsante

    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
     startScan();
    }
    });
    
  4. avviare la scansione!

Passo dopo passo per l'installazione ZXing 3.2.1 in Eclipse

  1. Scarica zxing-master.zip da " https://github.com/zxing/zxing "
  2. Unzip zxing-master.zip, utilizzare Eclipse per importare "Android" progetto in ZXing-master
  3. Scarica core-3.2.1.jar da " http : //repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ "
  4. Creare "libs" cartella nel progetto "Android" e incollare cor-3.2.1.jar nella cartella libs
  5. Fare clic sul progetto: scegliete "Proprietà" -> "Java Compiler" al livello del cambio a 1,7. Poi clicca su "Android" cambiamento "build target Progetto" ad Android 4.4.2+, perché l'utilizzo di 1.7 richiede la compilazione con Android 4.4
  6. Se "CameraConfigurationUtils.java" non esistono in "ZXing-master / android / app / src / main / java / com / google / ZXing / client / android / videocamera /". È possibile copiare da "ZXing-master / android-core / src / main / java / com / google / ZXing / client / android / videocamera /" e incollare al vostro progetto.
  7. Pulire e del progetto di costruzione. Se il vostro show errore del progetto di "switch - caso", li si dovrebbe cambiare in "se - altro".
  8. Completato. Pulire e costruzione del progetto. È possibile fare clic su "parametri fisico"> "Android"> clicca su "è Libraries" per usare per il vostro progetto
  1. Dopo aver importato ZXing come progetto esistente, Proprietà> Java Buildpath> Check "è la biblioteca" (pulsante di controllo) e quindi provare a aggiungere ZXing come biblioteca.

  2. Assicurati che esistono webclass.class nella vostra QRcodesampleActivity.java

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top