Verschiedene Bibliothek / Importe abhängig vom Build-Typ

8

In einer Android-App muss ich ein bestimmtes SDK für ein bestimmtes Peripheriegerät verwenden.

Mit einer einzigen Build-Variante funktioniert alles:

%Vor%

Das Problem besteht darin, dass das SDK auf einer gemeinsam genutzten Bibliothek basiert, die im tatsächlichen Peripheriegerät installiert ist. Wenn ich versuche, die App auf einem anderen Android-Gerät zu installieren (zum Debuggen der restlichen Funktionen), erhalte ich einen INSTALL_FAILED_MISSING_SHARED_LIBRARY -Fehler.

Ich denke, ich könnte zwei Build-Varianten verwenden:

  • release , die das SDK
  • verwendet
  • debug , das nicht das SDK
  • verwendet

Ich habe versucht, das SDK nur in den Buildtyp release einzufügen:

%Vor%

Aber dann kann ich das Projekt wegen der fehlenden Importe nicht kompilieren.

Also habe ich die einzige Klasse dupliziert, die diese Importe verwendet:

In main/java/package/PeripheralManager.java :

%Vor%

In release/java/package/PeripheralManager.java :

%Vor%

Der von mir gewählte Build-Typ spielt keine Rolle, ich kann das Projekt nicht kompilieren, wenn der Import nicht in einer der Varianten aufgelöst wird ...

    
thelawnmowerman 23.11.2016, 10:30
quelle

2 Antworten

4

Ich habe es endlich mit Aromen gelöst. Das Problem bestand darin, dieselbe Klasse in den Verzeichnissen main und release zu duplizieren. Das können wir nicht tun. Stattdessen musste ich es beispielsweise in debug und release oder flavour1 und flavour2 (eins mit den Importen und das andere ohne sie) kopieren und aus main entfernen. Dann kann ich wählen, was zu kompilieren und alles funktioniert.

Danke trotzdem für deine Hilfe, + MohanRaj!

    
thelawnmowerman 28.11.2016, 03:05
quelle
2

Bitte versuchen Sie dies auf Ihrem Modul build.gradle-Datei, hier mein Code, lassen Sie mich bitte Ihr Feedback wissen.Vielen Dank im Voraus.

build.gradle

%Vor%     
MohanRaj S 24.11.2016 09:16
quelle

Tags und Links