2012-03-29 4 views
0

Ich verwende zxing-Bibliothek für Barcode-Scannen in meiner Anwendung. Also habe ich zxing Projekt als eine Bibliothek und Hinzufügen dieser Bibliothek zu meinem Projekt (Eigenschaften -> android -> Bibliothek hinzufügen)Androide R.java Verhalten, wenn ein Bibliotheksprojekt hinzugefügt wird

Nach dem Hinzufügen der Bibliothek Projekt, wenn ich den Code zu bauen, sehe ich, dass es zwei R.java Dateien, die in meinem Projekt erstellt wurden.

Ein unter dem Pfad ist: gen \ com \ Google \ ZXing \ client \ android

und der andere: gen \ myproject

Die erste hat alle Ressourcenvariablen aus der Bibliothek sowie die Ressource Variablen in meinem Projekt. Der zweite hat Ressourcenvariablen nur von meinem Projekt. Wenn ein neues Layout oder Ressourcenvariable wird hinzugefügt, um seine in beiden Dateien immer aktualisiert

So meine Zweifel sind: 1. Warum gibt es zwei R.java Dateien 2. Gibt es eine Weise, die ich mit dem einen stoppen Erzeugung Alle Bibliotheksprojektvariablen

Aufgrund dieses Verhaltens lief ich auf sehr seltsame Probleme, die sehr schwierig zu debuggen war.

In meiner zxing-Bibliothek gibt es ein Layout "capture", das gesetzt wird, wenn wir versuchen, einen Barcode zu scannen. Wann immer ich irgendein Layout oder irgendeine Ressourcenvariable mit Namen beginnend mit dem Buchstaben "a"/"b" hinzufügte, gab meine Anwendung seltsame Verhaltensweisen. Und alles funktionierte perfekt, als ich gerade das Layout umbenannte Später fand ich, dass es etwas mit der ID für "capture" in R.java-Datei zu tun hat. Wenn ich ein Layout mit einem Buchstaben a definiere, wird es vor "capture" in die R.java-Liste eingefügt und somit ändert sich die ID für die Aufnahme. (Es gibt eine andere R.java-Datei im eigentlichen Zxing-Projekt, die ich als Bibliothek eingestellt hatte. So scheint die ID für die Erfassung in meiner R.java-Datei und die zxing-Bibliothek R.java sollte gleich sein)

Können Sie bitte erklären, was wirklich passiert hier

Antwort

0

ich glaube, Sie das komplette Projekt gehören ...

Wenn das so löschen, und nur importieren Sie diese in Ihre Projektdateien:

http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid-integration%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fintegration%2Fandroid%253Fstate%253Dclosed

das ist alles Du brauchst :)

+0

Ich mache es in einem anderen, wo ich zuerst Zxing-Projekt nehme, legen Sie es als Bibliothek und dann diese Bibliothek in meinem Projekt verwenden. Keine Verwendung der Integrartor-Dateien. Wie in diesem Link erklärt http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-native-using-eclipse/#comment-233 Ist das nicht der richtige Weg, es zu tun? – png

+0

Ich habe vor einer Weile so etwas gemacht. Der Benutzer muss Ihre Anwendung und den zusätzlichen ZX-Scanner installieren. Das sind zwei Apps von Google Play (Android Market)! Dieser Code enthält also keinen Quellcode als Bibliothek für Ihre Quelle. Es öffnet nur eine andere App und gibt den Wert (den Barcode) von dieser App zurück. Das Problem mit dem Beispiel, das Sie mir gaben, ist, dass Sie von Benutzern erwarten, ein zweites Programm herunterzuladen. Ich hoffe, du verstehst meine Geschichte, wenn du Fragen hast, frag einfach :) – Extranion

+0

Mit meinem Fall erzeuge ich die Apk für meine App und mit dieser App kann der Benutzer das Scannen machen. Sie müssen zxing nicht installieren oder nichts anderes herunterladen. Es funktioniert perfekt. Meine Sorge ist, dass ich versuche, das Code-Verhalten zu verstehen, wie die R.java abgeholt wird. – png

Verwandte Themen