2015-04-08 24 views
10

ho utilizzare Android in studio voglio importare 'ZXING' nella mia richiesta, ho trovato molti articoli e trovato il seguente sitoCome importare ZXING in Android Studio?

https://github.com/zxing/zxing/

Ho scaricato la compressione e decompressione, e trovare alcuni tutorial Ma non sembra essere troppo dettagliato sui dettagli, cosa devo importare? Per raggiungere QRCode scansione

non ho ancora idea di come farlo


4/14 ho provato Lennon URL fornito "ZXing-android-minimal" e importare il 'Gradle-wrapper. jar '

Ma quando ho scritto nuovo IntentIntegrator (this) .initiateScan(); appaiono ancora "Impossibile risolvere il simbolo 'messaggio IntentIntegrator"

https://www.dropbox.com/s/2srga9iq75iqe4m/%E8%9E%A2%E5%B9%95%E6%88%AA%E5%9C%96%202015-04-10%2001.33.56.png?dl=0

Io ho il diritto' .JAR selezionare Aggiungi come libreria Ma quando si verifica un errore, non sembra essere aggiunto


4/10

Infine non appaiono più "Impossibile risolvere il simbolo 'IntentIntegrator" questo è il codice, cosa ho sbagliato?

Ho rimosso il nuovo IntentIntegrator (this) .initiateScan(); 'Applicazioni normali di funzionamento

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    new IntentIntegrator(this).initiateScan(); 
} 

mio 'build.greadle'

repositories { 
    jcenter() 
    maven { 
     url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" 
    } 
} 
+0

Non sono destinati a "importare" nulla nel tuo progetto. Usa la libreria principale tramite Maven. Non copiare 'android' nel progetto. Stai avendo problemi dal momento che questo non è il modo in cui si intende utilizzarlo. –

+0

Vuoi dire, non ho davvero bisogno di importare alcun file nel mio progetto? – AM031447

risposta

8

ho avuto molti problemi quando ho sviluppato la mia app utilizzando la libreria ZXing. Quindi date un'occhiata a questo zxing minimale: https://github.com/Promptus/zxing-android-minimal/tree/master

Ha funzionato perfettamente per me ed è stato più facile da implementare.

EDIT:

aprire questo file nel progetto:

/gradle/wrapper/gradle-wrapper.properties

modificare la riga distributionUrl e impostarlo troppo:

distributionUrl = http: //services.gradle.org/distributions/gradle-1.8-all.zip Ricostruisci il tuo progetto.

Aggiornamento: Si consiglia di utilizzare gradle-2.1-all.zip ora.

NUOVO EDIT:

Prima di tutto, è necessario rimuovere il file libs. Quindi è necessario rimuovere

mavenCentral() 
    maven { 
     url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" 
    } 

dal build.gradle di MyApplication, perché quella Gradle è per l'intero progetto, ed è meglio lo si utilizza in ogni modulo.

Dopo di che, aprire la build.gradle del modulo app e aggiungere il seguente codice:

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' 

    // Zxing libraries 
    compile 'com.embarkmobile:zxing-android-minimal:[email protected]' 
    compile 'com.embarkmobile:zxing-android-integration:[email protected]' 
    compile 'com.google.zxing:core:3.0.1' 

} 

E, infine, è necessario eliminare google.zxing.integration.android dal progetto, in caso contrario, un errore verrà visualizzato quando si compila.

UPDATE:

Per risolvere il problema pulsante Indietro, si può fare il seguente codice:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (resultCode == RESULT_OK) { 

     String _code = data.getStringExtra("SCAN_RESULT"); 

     // do whatever you want 

    } 

} 
+0

Thank u Sto ancora cercando ho importato Gradle-wrapper.jar I secondo le istruzioni, ma sembra ancora non è possibile risolvere il simbolo 'IntentIntegrator' (già aggiunto in build.gradle) – AM031447

+0

Hai aggiunto il 'Maven 'repositori? Come ad esempio: 'repository { mavenCentral() Maven {url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" }} ' –

+0

Sì, devo aggiungere la frase E, ci sono stati altri errori durante l'aggiunta di dipendenze del contenuto {}, farò una foto dell'aggiornamento nell'articolo – AM031447

6

Si dovrebbe definire la dipendenza ZXing nel file di build.gradle:

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.google.zxing:core:3.2.0' 
} 

Questa è la codifica Nucleo di codici a barre/libreria di decodifica che è possibile utilizzare per creare l'app per scanner/codice a barre personalizzato.

Se è necessario supportare solo un semplice caso di scansione del codice a barre, è possibile incorporare l'applicazione ZXing Android Barcode Scanner utilizzando il progetto ZXing Android Embedded.

Questa è una porta dell'applicazione ZXing Android Barcode Scanner come progetto di libreria Android, per l'incorporamento in altre applicazioni Android.

Se si decide di utilizzare il progetto ZXing Android Embedded è facile come definire le dipendenze nella compilazione.File Gradle:

repositories { 
    mavenCentral() 

    maven { 
     url "http://dl.bintray.com/journeyapps/maven" 
    } 
} 

dependencies { 
    compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
    compile 'com.journeyapps:zxing-android-legacy:[email protected]' 
    compile 'com.journeyapps:zxing-android-integration:[email protected]' 
    compile 'com.google.zxing:core:3.2.0' 
} 

lancio l'intento con le opzioni predefinite:

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

E ottenere il risultato:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 

    switch (requestCode) { 
    case IntentIntegrator.REQUEST_CODE: 
     if (resultCode == Activity.RESULT_OK) { 
      // Parsing bar code reader result 
      IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
     } 
     break; 
    } 
} 
5

nella root-build.gradle:

repositories { 
    mavenCentral() 

    maven { 
     url "http://dl.bintray.com/journeyapps/maven" 
    } 
} 

Un nella tua app-build.gradle:

dependencies { 
    // Supports Android 4.0.3 and later (API level 15) 
    compile 'com.journeyapps:zxing-android-embedded:[email protected]' 

    // 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:[email protected]' 

    // Convenience library to launch the scanning 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:[email protected]' 

    // 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.2.0' 
} 

Maggiori informazioni possono essere trovate qui: https://github.com/journeyapps/zxing-android-embedded

1

Dopo tutti i passaggi spiegati da Lennon, risolvo il problema di "Impossibile risolvere il simbolo ' IntentIntegrator '"andando al terminale su Android Studio e digitato gradlew assemblare. Ci è voluto un po ', ma ora posso usare tutte le classi dichiarate sull'arma.

Spero che abbia aiutato.

3

Sono stato anche incontrato con lo stesso problema e ho risolto seguendo i semplici passi come mostrato di seguito:

Importa il progetto android dal file scaricato zxing-master zip utilizzando l'opzione Import project (Eclipse ADT, Gradle, etc.) e aggiungere il dollowing 2 linee di codice nel vostro livello applicazione build.gradle e sei pronto per l'esecuzione.

Così semplice, yahh ...

dependencies { 
     // https://mvnrepository.com/artifact/com.google.zxing/core 
     compile group: 'com.google.zxing', name: 'core', version: '3.2.1' 
     // https://mvnrepository.com/artifact/com.google.zxing/android-core 
     compile group: 'com.google.zxing', name: 'android-core', version: '3.2.0' 

    } 

si può sempre trovare la versione più recente e coreandroid core da sotto i collegamenti:

https://mvnrepository.com/artifact/com.google.zxing/core/3.2.1 https://mvnrepository.com/artifact/com.google.zxing/android-core/3.2.0

+0

Questa sembra una risposta più pertinente per le versioni correnti, a partire da luglio 2017. – zeeshan