gpt4 book ai didi

java - Android Flavors - 无法解析符号 R

转载 作者:行者123 更新时间:2023-12-02 03:31:03 28 4
gpt4 key购买 nike

我在同一代码库中有两个应用程序。他们使用相同的java文件并保存res文件,除了values和drawable文件夹,它们具有相同的文件和文件名但内容不同。

我遇到的问题是,当我的 Gradle 构建时,我遇到了问题,因为我在使用 R 的任何地方都会出现错误

无法解析符号 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..我猜这与包有关由于我的构建风格设置,名称不正确。

有什么想法吗?

最佳答案

好吧,现在我的挑剔已经完成了,这是我对答案的实际尝试:

我认为问题在于你在 res/中拥有每种风格的资源目录。如果你看at this post您将看到特定于 flavor 的资源应该位于 src/flavorName/res 目录中,而不是像您拥有的那样位于 res/flavorname 中。

当您这样做时,请继续从源集闭包中删除 flavor 闭包。只要目录名称与风格名称匹配并且您遵循文件夹的规范组织,您就不需要定义风格的源集。

关于java - Android Flavors - 无法解析符号 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38089858/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com