Domanda La dipendenza da Android viene ignorata per il rilascio


Ottengo molti di questi avvertimenti quando costruisco il mio progetto con gradle. io vedo https://stackoverflow.com/a/15794650/864069, ma non sono chiaro come zittirli. Suona come qualsiasi versione di queste cose a cui sto dipendendo è stata eliminata a favore della versione pacchettizzata in android.jar.

Suppongo che sia ok, ma mi piacerebbe davvero chiuderli in modo che le cose che vedo siano solo problemi reali.

Quindi, in particolare, sono curioso:

  1. Questo indica un problema? Sembra decisamente no.
  2. Come faccio a tacere?
  3. Non tutti vedono questa serie di avvertimenti? Sono scettico sul fatto che l'intero universo di persone che usano gradle + android.Log stia vedendo questa serie di avvertimenti.
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debugTest as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debugTest as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for robolectric as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for robolectric as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debugTest as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.3 is ignored for debugTest as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages

44
2017-08-13 19:59


origine


risposte:


Non sono sicuro che ciò possa creare problemi. La cosa migliore da fare è seguire il suggerimento nell'avviso o escludere completamente la dipendenza (il punto n. 2, a cui ho risposto di seguito).

Ho visto anche questi avvertimenti, in particolare quello di 'commons-logging'.

Qual è la risposta nel thread che hai linkato dicendo che dovresti ignorare queste dipendenze poiché le API di Android le includono già (credo, correggimi se sbaglio).

Ad esempio, se stai specificatamente richiedendo la registrazione da parte della comunità (o un'altra che fornisce un avvertimento simile) rimuovila dal tuo elenco.

file build.gradle:

dependencies {
    ...
    compile 'commons-logging:commons-logging:1.1.3' #Remove this line; you don't need it.
    ....
}

Inoltre, se si dispone di una dipendenza che richiede la registrazione della comunità come una dipendenza transitiva, è necessario escluderla.

Esempio:

dependencies {
    ...
    compile 'some.package.that:requires_commons_logging:1.2.3'
    ....
}

diventa

dependencies {
    ...
    compile ('some.package.that:requires_commons_logging:1.2.3') {
        exclude group: 'commons-logging', module: 'commons-logging'
    }
    ....
}

Un modo semplice per escluderlo completamente può essere fatto aggiungendo questo al tuo file build.gradle, senza doverlo escludere in ogni dipendenza:

configurations {
    all*.exclude group: 'commons-logging', module: 'commons-logging'
}

Infine, per visualizzare l'albero delle dipendenze (e per vedere ciò che ciascuna delle tue dipendenze importa in modo temporaneo da solo e che può essere in conflitto, il che può essere molto utile), usa questo comando dalla radice del tuo progetto:

./gradlew :your_module_name:dependencies

86
2017-08-22 18:36



Se si desidera disattivare gli avvisi, è necessario aggiungerli nel build.gradle per ciascuna dipendenza:

exclude group: 'org.apache.httpcomponents', module: 'httpclient'

Sarà :

dependencies {
    ...
    compile ('some.package.that:requires_commons_logging:1.2.3') {
        exclude group: 'commons-logging', module: 'commons-logging'
    }
    ....
}

10
2018-01-25 14:59