Ho una funzione pulito che fa qualcosa su una visione:Kotlin, Proguard e lambda
fun<T : View> Activity.withView(nr : Int, fn : T.()->Unit) {
(findViewById(nr) as T?)?.fn()
}
Ora, quando uso questa funzione nella mia attività:
withView<Spinner>(R.id.spinner_toolbar) {
adapter = AdapterIndeksuDlaSpinnera([email protected], PlaylistIndex)
... tutto è OK fino a quando non uso ProGuard. Vedo che AdapterIndeksuDlaSpinnera
viene manomesso, come previsto, ma l'applicazione non riesce quando proguardato con "Impossibile caricare la classe AdapterIndeksuDlaSpinnera" (mentre dovrebbe lamentarsi del nome dell'adattatore manomesso).
sono stato in grado di creare temporanee soluzione disabilitando storpiatura di tutti gli adattatori che possono essere utilizzati all'interno del mio withView
-keep class pl.qus.xenoamp.adapter.** { *; }
ma non mi sento che è una buona soluzione (e non ho idea di quello che le altre classi può fallire in questo modo!). Quindi qualcuno può spiegare qual è il problema e quale linea ProGuard dovrei aggiungere per correggere potenzialmente occorrenze simili di altre classi utilizzate all'interno di withView
?
Potresti inserire il file '.class' per l'adattatore e il file, contenente la chiusura? Possono essere trovati in 'build/intermediates/classes /' del progetto Android. – user1643723
Lasciaci [continuare questa discussione in chat] (http://chat.stackoverflow.com/rooms/103964/discussion-between-user1643723-and-ssuukk). – user1643723