我在同一代碼庫中有兩個應用程序。他們使用相同的java文件並保存res文件,除了值和可繪製文件夾,它們具有相同的文件但文件名不同但內容不同。Android Flavors - 無法解析符號R
我遇到的問題是,當我的搖籃建立,我有一個問題,因爲到處都是,我使用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 ..我猜這是與由於我的構建風格設置,包名稱不正確。
任何想法?
我會給你一個去,並儘快回覆您nitpicker!感謝您的幫助至今:) – Nickmccomb
沒問題。我更多關注了你的問題,我認爲在移動flavor資源之後,你還必須將res/main中的內容放到res中。 (之後不要忘記更新build.gradle)。此外,你將不得不將你的基本應用程序的Java文件(你在src中的文件)移動到src/main/java中。這個SO貼子比我解釋如何構建您的文件的風味更好的工作:http://stackoverflow.com/a/20345749/6526330 –
啊現在它是有道理的!這是我第一天的口味,所以我仍然習慣於應該如何設置。我現在走在正確的軌道上,感謝您的幫助! – Nickmccomb