Salve a tutti,
vorrei proporre un problema...
E' possibile caricare dinamicamente una libreria (un file .jar) in un'applicazione?
Mi spiego meglio.
Vorrei riuscire a sfruttare il versioning in android. Ossia caricare e scaricare dinamicamente un file .jar e sfruttarne le funzionalità. Il file .jar non deve essere incluso staticamente nell'applicazione, questo perché vorrei poter cambiar a run-time la versione della libreria.
Per esempio: se voglio utilizzare myLibrary.jar e le classi che mette a disposizione, posso includerlo direttamente dal codice? Guardando nella documentazione java di android, esiste URLClassLoader che - tecnicamente - dovrebbe permettermi di includere un file jar e poterlo sfruttare.
Ecco come ho implementato la cosa:
public class MyJarLoader extends URLClassLoader {
public MyJarLoader(URL[] urls) {
super(urls);
}
public void addFile (File file) throws MalformedURLException
{
URL myJarUrl = file.toURI().toURL();
addURL(myJarUrl);
}
}
File file è la libreria .jar da caricare.
Non mi da nessun errore di compilazione, tuttavia se provo a cercare o ad istanziare una classe presente nel file.jar non me la trova e mi da un ClassNotFoundException.
Qualche idea?
Grazie mille per i consigli...