Sto configurando una libreria Android con diverso productFlavors. La libreria ha una luce e uno completo. Il file viene settato correttamente:Impossibile importare il supporto per android v4 o v7 nella libreria utilizzando productFlavors
src/main/java/com/example/...
per le classi principali
src/full/java/com/example/...
per le classi piene
src/light/java/com/example/...
per le classi di luce
Android Studio capito bene questo e ha aggiunto un (full)
al sapore pieno.
NUMERO: Le dipendenze come okhttp
funziona come previsto, ma non il appcompat-v7
. Tutto usando ViewPager
, FragmentActivity
, RecyclerView
. Ho provato ad aggiungere le dipendenze allo fullCompile
ma non ha funzionato neanche. Le dipendenze non vengono risolte da Android Studio, l'importazione non funziona, eccetto ok okhttp
, exoplayer
e così via.
Ho provato Invalidate Cache/Restart
, clean Project
, Resync gradle
, nessuno ha funzionato.
Bibliotecabuild.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
...
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
minifyEnabled false
}
}
lintOptions {
abortOnError false
}
publishNonDefault true
productFlavors {
full {
}
light {
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.squareup.okhttp:okhttp:2.3.0'
fullCompile 'com.android.support:support-v4:23.1.1'
fullCompile 'com.android.support:appcompat-v7:23.1.1'
fullCompile 'com.android.support:recyclerview-v7:23.1.1'
fullCompile 'com.squareup.picasso:picasso:2.5.0'
}
Appbuild.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
buildTypes {
release {
}
}
productFlavors {
full {
}
light {
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.+'
compile 'com.android.support:support-v4:23.+'
compile 'com.google.android.gms:play-services-base:7.5.0'
compile 'com.google.android.gms:play-services-ads:7.5.0'
compile 'com.google.android.gms:play-services-location:7.5.0'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
fullCompile project(path: ':library', configuration: 'fullRelease')
lightCompile project(path: ':library', configuration: 'lightRelease')
}
È possibile fornire l'errore prodotto in gradle? – droidpl
quando si crea l'app, si dice 'Errore: (1073, 64) errore: il pacchetto ViewPager non esiste'. Se sfoglio le classi, l'importazione di 'ViewPager' non viene risolta e genera un errore in quelle classi. @droidpl –
Se si utilizza in qualche luogo un viewPager e questa classe non è nella versione full/light nella cartella src/light o src/full corrispondente, non verrà importata poiché con fullCompile si dice in questa versione la biblioteca è disponibile. Puoi ricontrollare dove si trova questo file in crash? – droidpl