Mam projekt Androida, który używa gradle z innym projektem jako zależnością. Projekt zależności ma słoik biblioteki. Podczas próby kompilacji biblioteka projektu jest kompilowana dwukrotnie i pojawia się błąd: Błąd: Klasa no.nordicsemi.android.log.LogContract. Aplikacja została już dodana do danych wyjściowych. Usuń zduplikowane kopie.System operacyjny "został już dodany do wyjścia" dla słoika w zależności od projektu
Oto struktura folderów z plikami w pytaniu:
>ProjectRoot
>dFULibrary
>libs
-nrf-logger-v2.0.jar
-build.gradle
>Logger
-build.gradle
To build.gradle do uzależnienia dFULibrary:
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')
}
To build.gradle dla rejestratora (główny projektu):
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.Application znajduje się klasa nrf-logger-v2.0.jar Dlaczego czy jest on uwzględniany dwukrotnie i jak mogę się upewnić, że tak nie jest?
ADDITION
Oto co ../gradlew zależności powrotu:
_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
usunąłem wszystkie linie, które miały żadnych zależności.
EDIT # 2 wyjście z ./gradlew androidDependencies
: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
Jeśli używasz 'dependencies' zadanie Gradle można dostać lepszy wgląd w to, co się dzieje. Możesz uruchomić go z wiersza poleceń z katalogu roboczego twojego głównego modułu (nie z katalogu głównego projektu) przez '../gradlew dependnecies' –
Nie wiesz, czy to pomoże, ale czy próbowałeś zmienić pliki kompilacji ('libs/nrf -logger-v2.0.jar ') do dostarczonych plików (' libs/nrf-logger-v2.0.jar ') (Zwykle nie powinien zawierać tego słoika na wyjściu) –
Dziękuję za poświęcony czas! Niestety podany plik() niczego nie zmienił. Zaktualizowałem to pytanie podając dane wyjściowe zależności gradlew – Stpn