我有一些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