Puede un AAR incluyen dependencias transitivas?

Ahora mismo tengo un proyecto de biblioteca, digamos proyecto Foo que depende de la biblioteca como OkHttp.

Ahora, Foo tiene un Maven buildstep que genera un AAR y se empuja hasta un lugar público.

Ahora vamos a decir que tengo el proyecto B, vamos a llamar a la Barra. Bar es una aplicación para Android, y la Barra depende de los Foo.

Bueno, tengo que. Sin embargo, cuando hago una llamada a un public static función de Foo Bar que se llama OkHttp, me sale este mensaje:

java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory
            at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15)

Es tal cosa posible? O Bar necesita manualmente dependen de OkHttp así como cualquier otra de las dependencias de Foo tiene?

InformationsquelleAutor VicVu | 2014-09-06

1 Kommentar

  1. 55

    Tomó un poco de tiempo, pero he encontrado lo que estaba buscando. Ella pasó a ser la forma en que me redacción de mis búsquedas.

    Esta menos visto respuesta fue exactamente lo que yo estaba buscando:

    Transitiva dependencias no resueltas por aar biblioteca con gradle

    Esencialmente, tuve que agregar un

    transitive = true

    …a la build.gradle de la Barra de

    Ejemplo:

    compile ('com.foo:FOO:[email protected]'){
           transitive=true
    }

    De esta manera se incluye a todos los de mi transitiva de las bibliotecas.

    Nota, sin embargo, que este hecho puede provocar conflictos entre dependencias (especialmente las locales), que puede ser resuelta mediante un exclude etiqueta.

    • Estoy siguiendo este enfoque, sin mucho éxito. En consecuencia el método explicado anteriormente, mi configuración debe ser como sigue: compile ('com.my:library:[email protected]'){ transitive = true } Pero cuando importo el final de la biblioteca en mi proyecto, el transitivo lib falta. No tengo ni idea acerca de cómo proceder, alguna idea?
    • Si se incluyen aar como archivo local mediante flatDir entonces significa que aar no contiene dependencias transitivas, debe incluir de forma manual. Sin embargo, si usted está obteniendo aar de, por ejemplo, maven repo, a continuación, la biblioteca tiene la descripción de las dependencias que se está usando (en archivo pom) y gradle pueden obtener automáticamente para usted.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea