我需要防止gradle導出某個共享庫。「提供」範圍不工作 - android工作室與gradle
我讀過使用提供的範圍應該做的伎倆,但它似乎只適用於較舊的gradle版本。
是否有任何其他方式從構建過程中排除依賴關係,不讓它們進入最終的apk?
我需要防止gradle導出某個共享庫。「提供」範圍不工作 - android工作室與gradle
我讀過使用提供的範圍應該做的伎倆,但它似乎只適用於較舊的gradle版本。
是否有任何其他方式從構建過程中排除依賴關係,不讓它們進入最終的apk?
我有同樣的問題,我找到了一些解決方案,但我不明白。
我已經通過手動從apk文件中刪除庫解決了我的問題。顯然不是最好的解決方案,但它適用於我的情況 –
通過使用Android的易gradle這個插件解決thie問題。
看到這裏https://bitbucket.org/hvisser/android-apt/overview
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 20
buildToolsVersion '20.0.0'
defaultConfig {
applicationId "org.ligboy.test.card.module1"
minSdkVersion 14
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
configurations {
apt
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
apt 'com.android.support:support-v4:21.+'
apt 'com.google.code.gson:gson:2.2.+'
apt 'com.android.support:cardview-v7:+'
apt 'com.android.support:recyclerview-v7:+'
}
您不需要'android-apt',實際上,您正在使用'configurations'塊覆蓋'apt'範圍。 – botteaap
我已經找到解決方法:https://stackoverflow.com/a/10406184/310760
但對於搖籃2.0它有小的變化:
configurations{
provided
}
sourceSets {
main {
compileClasspath += configurations.provided
}
test {
compileClasspath += configurations.provided
}
}
sourceSets.main.compileClasspath += configurations.provided
idea {
module{
scopes.PROVIDED.plus += [configurations.provided] // for Gradle 2.0
}
}
與此打了一段時間,發現:
僅供參考:升級到1.5.0後,必須刪除我的build目錄以從.aar中刪除lib文件。
什麼確切的依賴關係?他們真的是由Android平臺提供嗎? – agamov
它是一個共享模塊 –
這工作對我來說:https://stackoverflow.com/questions/10405970/how-do-i-define-a-compile-time-only-classpath-in-gradle/24686771#24686771 – aarkay