Quindi, al momento ho un progetto di libreria, ad esempio il progetto Foo
che dipende da una libreria come OkHttp
.Un AAR può includere dipendenze transitive?
Ora, lo Foo
ha un maven buildstep che genera un AAR e lo spinge in un luogo pubblico.
Quindi ora diciamo che ho il progetto B, lo chiameremo Bar
. Bar è un'applicazione Android e Bar
dipende da Foo
.
Bene, ho quello. Tuttavia, quando faccio una chiamata a una funzione public static
in Foo
da Bar
che chiama OkHttp
, ottengo questo messaggio:
java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory
at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15)
Quindi, è una cosa possibile? O sarà Bar
necessario dipendere manualmente da OkHttp
e da qualsiasi altra dipendenza Foo
?
Sto seguendo quell'approccio senza molto successo. In base al metodo spiegato in precedenza, le mie impostazioni dovrebbero essere le seguenti: 'compile ('com.my:library:[email protected]') { transitive = true }' Ma quando importare la libreria finale in il mio progetto, la lib transitivo manca. Non ho idea di come procedere, qualche idea? –
@MichaelKnight Se si include aar come file locale usando flatDir, allora significa che aar non contiene dipendenze transitive, dovresti includerle manualmente. Tuttavia, se stai recuperando aar da, ad esempio, Maven Repos, allora la libreria ha una descrizione di quali dipendenze sta usando (nel file pom) e gradle può recuperarli automaticamente per te. – NazarK
@MichaelKnight non funziona per me –