Classe non trovata: packageparser quando si utilizza packageinstaller da git
-
28-10-2019 - |
Domanda
Questa è una domanda molto precisa sul progetto open source di pacchetto ospitato sul progetto di codice di Google: http://android.amberfog.com/?p=98
Quando provo a compilarlo, ottengo un ClassNotFoundException
Eccezione per questa classe:android.content.pm.PackageParser
.
Non capisco davvero cosa succede in quanto questa classe fa parte di Android SDK ma non documentata nei documenti Android.
Qualcuno ha usato quel pacchetto prima e sa come compilarlo?
Soluzione
Aggiornato
Stai cercando di compilare l'applicazione PackageInstaller, che è l'applicazione che Google spedisce come parte del sistema Android e che utilizza alcune API nascoste da SDK pubblico (come android.content.pm.PackageParser
). Ci sono poche tecniche disponibili per l'accesso a quell'API nascosta, ma anche se sei stato in grado di compilare PackageInstaller non è eseguito perché richiede poche autorizzazioni (come android.permission.INSTALL_PACKAGES
) che può essere concesso alla domanda solo quando è firmata con il certificato di sistema. E solo il fornitore del dispositivo può farlo.
Ma lascia che te lo chieda, perché hai bisogno di compilare l'app PackageInstaller? L'autore dell'articolo a http://android.amberfog.com/?p=98 mostra come installare/disinstallare il .apk inviando il Intent
sull'applicazione di Google PackageInstaller. Non è necessario ricompilare il pacchetto INSTALLER per poterlo fare.
Altri suggerimenti
Immagino che tu debba estrarre tutto il codice Android dal repository e compilarlo. Puoi provare a scaricare solo la classe di cui hai bisogno e tutte le sue dipendenze.