2 Stimmen

Wie Sie zwei Bibliotheken unterschiedlicher Versionen in Android einbinden

Für die Rückwärtskompatibilität muss ich zwei Versionen derselben Barcode-Lesebibliothek in meiner App einbinden.

Für Barcodes im alten Format werde ich die alte Bibliothek verwenden.
Für Barcodes im neuen Format werde ich die neue Bibliothek verwenden.

Problem: Die Klassen in beiden Bibliotheken haben dieselben Namen.

Frage: Wie kann ich beide Bibliotheken in meine App einbinden, ohne einen Namenskonflikt zu verursachen?

Was ich versucht habe: Ich habe versucht, zwei Bibliotheksprojekte zu erstellen - eins für jede Bibliothek. Ich habe versucht, direkten Zugriff auf die Bibliotheken zu verbieten, indem ich Build Path Access Rules verwendet habe - aber die App sieht immer noch beide Bibliotheken.

3voto

SimonSays Punkte 10616

Ich nehme an, dass du den Quellcode für diese Bibliothek nicht hast, richtig?

Quellcode vorhanden:

Du solltest eine Bibliothek erstellen, die sowohl das alte als auch das neue Format unterstützt.

Bibliotheken vorhanden, aber kein Quellcode:

Dies ist nur möglich, wenn du einen benutzerdefinierten ClassLoader verwendest. Schau dir hier ein Beispiel an.

0voto

asaf gitai Punkte 400

Auch wenn es extrem ist, haben Sie die Möglichkeit, den Root des Namespace der alten Bibliothek zu ändern.

Stellen Sie jedoch sicher, dass Sie dies mit Refactoring durchführen, damit sich die internen Bibliotheksklassen entsprechend ändern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X