我在同一个代码库中有两个应用程序。他们使用相同的 java 文件并保存 res 文件,但 value 和 drawable 文件夹除外,它们具有相同的文件和文件名但内容不同。
我遇到的问题是,当我的 Gradle 构建时,我遇到了问题,因为我使用 RI 的任何地方都有错误
Cannot resolve symbol R
我的 build.gradle 文件如下所示(为简洁起见,省略了一些设置):
android {
signingConfigs {
// left out
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary 'org.apache.http.legacy'
lintOptions {
disable "ResourceType"
}
defaultConfig {
applicationId = "com.au.testapp"
minSdkVersion 16
targetSdkVersion 23
versionCode = 1
buildConfigField 'String', 'app_ver_numb', '"1.00"'
multiDexEnabled = true
}
sourceSets {
main {
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
assets.srcDirs = ['assets']
res.srcDirs = ['res/main']
manifest.srcFile 'AndroidManifest.xml'
}
flavorone{
res.srcDirs = ['res/flavorone']
}
flavortwo{
res.srcDirs = ['res/flavortwo']
}
instrumentTest.setRoot('tests')
}
productFlavors {
flavorone {
applicationId "com.au.testapp.flavorone"
versionName = "''"
buildConfigField 'String', 'app_id', '"79"'
}
flavortwo {
applicationId "com.au.testapp.flavortwo"
versionName = "''"
buildConfigField 'String', 'app_id', '"79"'
}
}
buildTypes {
debug {
productFlavors.flavorone.signingConfig signingConfigs.flavorone
productFlavors.flavortwosigningConfig signingConfigs.flavortwo
}
release {
productFlavors.flavorone.signingConfig signingConfigs.flavorone
productFlavors.flavortwo.signingConfig signingConfigs.flavortwo
minifyEnabled true
shrinkResources true
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
我的文件夹结构如下所示:
src
com
au
testapp
adapter
utils
db
common
...
res
main
anim
animator
...
drawable
layout
values
...
flavorone
drawable
values
flavortwo
drawable
values
当我在 Gradle 中构建它时,我没有收到任何错误,但是当我构建项目时,我的 java 文件都有错误,因为它们找不到 R.. 我猜这与包名不存在有关由于我的构建风味设置而正确。
有任何想法吗?