In einer Android-App muss ich ein bestimmtes SDK für ein bestimmtes Peripheriegerät verwenden.Verschiedene Bibliotheken/Importe je nach Build-Typ
Alles funktioniert mit einer einzigen Build-Variante fein:
provided fileTree(include: ['peripheral.jar'], dir: 'libs')
compile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
Das Problem ist, dass das SDK auf einer gemeinsam genutzten Bibliothek in der eigentlichen Peripherie installiert beruht. Wenn ich versuche, die App auf einem anderen Android-Gerät zu installieren (zum Debuggen der restlichen Funktionen), bekomme ich einen INSTALL_FAILED_MISSING_SHARED_LIBRARY
Fehler.
Ich glaube, ich zwei Build-Varianten verwenden:
release
, dass verwendet das SDKdebug
, die nicht das SDK nicht verwendet
Ich habe versucht, mit dem SDK Nur in der release
Build-Typ:
releaseProvided fileTree(include: ['peripheral.jar'], dir: 'libs')
releaseCompile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
Aber dann kann ich das Projekt wegen der fehlenden Importe nicht kompilieren.
So dupliziert ich die einzige Klasse, die diese Einfuhren verwendet:
In main/java/package/PeripheralManager.java
:
public class ScannerManager {
// fake
}
In release/java/package/PeripheralManager.java
:
import peripheral; <- IT FAILS WHEN COMPILING
public class ScannerManager {
// real code
}
Keine zählt die Art Build wählte ich, kann ich Kompilieren Sie das Projekt nicht, wenn der Import nicht in einer der Varianten gelöst ist ...
Können Sie multidex versuchen, um Duplikate zu vermeiden. –
Ich habe das noch nie zuvor benutzt. Denken Sie, dass dies nicht mit Build-Typen gelöst werden kann? – thelawnmowerman
Hoffe, es wird helfen, darf ich die Antwort hier teilen? –