Apprezzo che ciò possa sembrare assurdo, ma è possibile rilasciare due versioni diverse di una libreria .jar in un progetto Android (in cui entrambe le versioni hanno ovviamente nomi di pacchetti e classi identici o sovrapposti) e in qualche modo puntano esplicitamente a uno di quando importano le classi della libreria nelle mie stesse sorgenti Java?Posso in qualche modo includere e utilizzare più versioni di una determinata libreria .jar?
Il mio ambiente di sviluppo è Android Studio con Gradle.
Il motivo per cui ho pensato di farlo (se possibile) è perché mi affido a una libreria di driver .jar con fornitore closed-source per un dispositivo USB con cui funziona la mia applicazione Android. Il fornitore ha aggiunto il supporto per le versioni di chip più recenti nei loro ultimi driver, ma allo stesso tempo ha abbandonato il supporto per le versioni di chip più vecchie. Questa è una decisione che hanno preso per la loro buona ragione ed è improbabile che venga invertita. L'idea che ho è di portare in qualche modo sia le vecchie che le nuove versioni della libreria nella mia applicazione in modo che possa continuare a supportare l'hardware precedente.
Suppongo che una cosa del genere sia teoricamente possibile, ma un affare complicato, forse che richiede una .jar da decompilare ei nomi dei pacchetti cambiati?
Dovresti usare qualcosa come ** 'jarjar' ** per riconfezionare uno dei JAR, a meno di giocare a brutti giochi di classloader. – CommonsWare
L'ordine di quei file JAR in CLASSPATH è importante. Quale mai viene prima, le classi JAR verranno caricate (poiché lo spazio dei nomi è lo stesso). – K139
Grazie gentiluomini, il tuo contributo è molto apprezzato. La proposta 'jarjar' è molto interessante. – Trevor