Ho un progetto Android che utilizza gradle con un altro progetto come dipendenza. Il progetto Dipendenza ha un barattolo di libreria. Quando provo a compilare, la libreria del progetto viene compilata due volte e viene visualizzato l'errore: Errore: la classe n.nordicsemi.android.log.LogContract.Application è già stata aggiunta all'output. Si prega di rimuovere copie duplicate.Errore Android "è già stato aggiunto all'output" per jar in una dipendenza del progetto
Ecco la struttura delle cartelle con i file in questione:
>ProjectRoot
>dFULibrary
>libs
-nrf-logger-v2.0.jar
-build.gradle
>Logger
-build.gradle
Questo è build.gradle per dFULibrary dipendenza:
apply plugin: 'com.android.library'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "no.nordicsemi.android.dfu"
minSdkVersion 18
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:+'
compile files('libs/nrf-logger-v2.0.jar')
}
Questo è build.gradle per Logger (progetto principale):
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.4'
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion '20'
sourceSets {
main {
java.srcDirs "src/main/java"
res.srcDirs "src/main/res"
assets.srcDirs = ['assets']
}
androidTest.setRoot('tests')
androidTest.java.srcDirs = ['tests/src']
}
dexOptions {
preDexLibraries = false
}
}
dependencies {
compile 'com.android.support:support-v4:+'
compile project':dFULibrary')
}
no.nordicsemi.android.log.LogContract.Verrà trovata classe di nrf-logger-v2.0.jar Perché è incluso due volte e come posso assicurarmi che non lo faccia?
OLTRE
Ecco cosa ../gradlew dipendenze ritornano:
_debugApk - ## Internal use, do not manually configure ##
\--- project :dFULibrary
_debugCompile - ## Internal use, do not manually configure ##
+--- project :dFULibrary
\--- com.android.support:support-v4:+ -> 21.0.2
\--- com.android.support:support-annotations:21.0.2
_releaseApk - ## Internal use, do not manually configure ##
\--- project :dFULibrary
_releaseCompile - ## Internal use, do not manually configure ##
+--- project :dFULibrary
\--- com.android.support:support-v4:+ -> 21.0.2
\--- com.android.support:support-annotations:21.0.2
androidJacocoAgent - The Jacoco agent to use to get coverage data.
\--- org.jacoco:org.jacoco.agent:0.7.1.201405082137 FAILED
androidJacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks.
\--- org.jacoco:org.jacoco.ant:0.7.1.201405082137 FAILED
compile - Classpath for compiling the main sources.
\--- project :dFULibrary
provided - Classpath for only compiling the main sources.
\--- com.android.support:support-v4:+ -> 21.0.2
\--- com.android.support:support-annotations:21.0.2
ho rimosso tutte le linee che non avevano dipendenze.
EDIT # 2 uscita dal androidDependencies ./gradlew
:DFULibrary:androidDependencies
debug
\--- LOCAL: nrf-logger-v2.0.jar
debugTest
+--- LOCAL: nrf-logger-v2.0.jar
\--- debug
\--- LOCAL: nrf-logger-v2.0.jar
release
\--- LOCAL: nrf-logger-v2.0.jar
:nRFToolbox:androidDependencies
debug
+--- LOCAL: achartengine-1.1.0.jar
\--- nrfToolbox:DFULibrary:unspecified
\--- LOCAL: nrf-logger-v2.0.jar
debugTest
No dependencies
release
+--- LOCAL: achartengine-1.1.0.jar
\--- nrfToolbox:DFULibrary:unspecified
\--- LOCAL: nrf-logger-v2.0.jar
BUILD SUCCESSFUL
Se si utilizza il 'dependencies' compito Gradle è possibile ottenere un po 'di indicazioni su ciò che sta succedendo. Puoi eseguirlo dalla riga di comando dalla directory di lavoro del tuo modulo principale (non dalla root del progetto) tramite '../gradlew dependnecies' –
Non sicuro, se sarà d'aiuto, ma hai provato a cambiare i file compilati ('libs/nrf -logger-v2.0.jar ') ai file forniti (' libs/nrf-logger-v2.0.jar ') (Normalmente non dovrebbe includere questo jar in output) –
Grazie per il tuo tempo! Purtroppo il file fornito() non ha modificato nulla. Ho aggiornato la domanda con l'output delle dipendenze gradlew – Stpn