Ho un progetto di libreria chiamato Common che utilizzo per funzionalità condivisa dai miei altri progetti, Consumer e Management. Il consumatore stesso è anche un progetto di libreria che viene utilizzato da altre app.L'importazione del progetto di libreria più volte in Android Studio 1.3.1 causa la scomparsa della libreria
Il file build.gradle in comune contiene tutte le dipendenze esterne utilizzate dagli altri progetti in questo modo:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.2.2'
compile 'com.android.support:support-v4:22.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'
}
Questo download i seguenti biblioteche:
La lista rimane invariato quando Aggiungo Common a Consumer, Management o entrambi. Quando aggiungo al consumatore di MiaApp in questo modo:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':consumer')
}
Questo accade:
La libreria di supporto scompare, scatenando il caos completo nel mio progetto. Ciò non è accaduto prima dell'aggiornamento ad Android Studio 1.3.1, quindi mi sto davvero chiedendo quale potrebbe essere il problema.
Per riferimento questi sono i file gradle.build completi:
comune
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.2.2'
compile 'com.android.support:support-v4:22.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'
}
gestione
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "eu.test.mgmt"
minSdkVersion 11
targetSdkVersion 22
multiDexEnabled = true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile project(':common')
}
consumatori
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
lintOptions {
checkReleaseBuilds false
abortOnError false
}
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
versionCode 18
versionName "1.3"
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/xml', 'src/main/res/xml'] } }
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':common')
}
MiaApp:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "eu.test.myapp"
minSdkVersion 15
targetSdkVersion 22
versionCode 19
versionName "1.4"
multiDexEnabled = true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':consumer')
}
Solo una cosa strana che posso vedere è che si specificano repository nel 'Build.gradle' di Consumer. Forse prova a rimuovere quel blocco in quanto non sembra necessario, anche se non sono sicuro che ciò potrebbe causare il tuo problema. –
due domande !! hai provato ad aggiungere: comune come dipendenza diretta? allora anche la libreria appCompat non viene mostrata? e aggiungendo: la gestione come dipendenza causa anche gli stessi problemi? – Ramesh
manca solo in IDE? provare a './gradlew your_app: dipendenze' e fornire output – vigilancer