我有一些resouces只的Java項目的build.gradle(S):Gradle:如何將Java項目風格依賴資源包含到Android APK中?
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'eclipse'
和目錄結構:
flavor1/
src/
main/
resources/
assets/
file1.png
flavor2/
src/
main/
resources/
assets/
file1.png
和其他項目(這次的Android)用的build.gradle:
android {
compileSdkVersion 19
buildToolsVersion "19"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
productFlavors {
flavor1 {
packageName "com.mydomain.flavor1"
}
flavor2 {
packageName "com.mydomain.flavor2"
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDirs = ['res']
assets.srcDirs = ['assets']
java.srcDirs = ['src/main/java']
}
flavor1 {
res.srcDirs = ['res-flavor1']
assets.srcDirs = ['assets-flavor1']
}
flavor2 {
res.srcDirs = ['res-flavor1']
assets.srcDirs = ['assets-flavor2']
}
}
}
dependencies {
flavor1Compile project(':flavor1')
flavor2Compile project(':flavor2')
}
與目錄結構:
android_project/
assets/
assets-flavor1/
assets-flavor2/
res/
res-flavor1/
res-flavor2/
src/
main/
java/
com/
...
問題是來自普通Java項目的資源:flavor1和:flavor2未包含在生成的APK中。如果我將它們包括爲全局依賴項:
dependencies {
compile project(:flavor1)
}
它們包含在APK罰款中。
這些普通Java項目的原因是它們既是Android項目風格的資源,也是其他項目(iOS,HTML,Java,這些在問題中沒有描述)的資源,所以我不能直接在Android項目中包含它們資產。
你能幫我嗎?
這是行不通的!雖然必須使用相對或絕對路徑,所以我編輯了你的文章。謝謝。 – Blackhex
我很高興它爲你工作。感謝編輯! – kukido
嗯,不幸的是,這會導致Android Studio和IntelliJ出現錯誤:無法註冊類型爲「SOURCE」的給定路徑,因爲它已超出內容根目錄。任何線索如何解決這個問題? – Blackhex