android 未解析引用:Kotlin中的BuildConfig

r1wp621o  于 2023-04-10  发布在  Android
关注(0)|答案(6)|浏览(321)

所以我启动了一个新的安卓应用程序
这是我的Android Studio信息

Android Studio 3.6.1
Build #AI-192.7142.36.36.6241897, built on February 27, 2020
Runtime version: 1.8.0_212-release-1586-b04 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1

我还补充说

buildConfigField "String", "MODE", "FREE"

我的产品口味
当我现在在我的主活动的onCreate中得到这个时,

BuildConfig

是未解析的引用。

bwntbbo3

bwntbbo31#

对我来说,由于某种原因清理项目是不够的,我必须删除生成的BuildConfig文件并重新构建。之后,BuildConfig再次自动解析。

ar7v8xwq

ar7v8xwq2#

我知道已经有一段时间了,但我找到了一个可重复的解决方案...
尽管IDE中出现了“unresolved reference”错误,但一切都编译得很好。正如一些人提到的,清理和重新构建项目并不能解决问题。Android Studio中的“Invalidate Caches”选项也不能解决问题。
真正起作用的是临时添加一个新的BuildConfig变量到app gradle defaultConfig部分。类似于:

buildConfigField "boolean", "TEST", "false"

然后重建“未解决的引用”错误就消失了,你可以删除你添加的BuildConfig变量,但错误仍然不会回来。
我还应该提到的是,任何时候我清理项目时,错误都会回来,我必须重复这个过程。

wvyml7n5

wvyml7n53#

我有两个不同的android studio项目都有这个BuildConfig.APPLICATION_ID未解决的问题。第一个是通过clean and build序列解决的。另一个不是。区别是后者的import androidx.viewbinding.BuildConfig。删除它,然后clean + build解决了这个问题。我不记得为什么import在那里,可能它在某个时候被使用过。

blmhpbnm

blmhpbnm4#

对我来说,问题是另一个模块是一个库模块(名为common),与我的主应用模块具有相同的命名空间。我的应用模块的命名空间是common.example.myapplication,而我的公共模块使用相同的名称。所以我将命名空间从

...
android {
    namespace = "com.example.app"
}
...

android {
    namespace = "com.example.common"
}
...
oxf4rvwz

oxf4rvwz5#

以下是解决此问题的一些简单步骤:
1.转到文件菜单〉生成〉清理项目
1.现在转到文件菜单〉生成〉重建项目
(以上步骤可能会解决问题,如果不能,请执行步骤3)
1.现在转到您遇到这个问题的文件(在我的例子中是RetrofitClient.kt)并手动添加import com.example.myapplication.BuildConfig
(将“com.example.myapplication”替换为您的软件包名称)
就这样

3qpi33ja

3qpi33ja6#

未解析引用

  • 请选择**build variant,类似DEBUG**模式。
  • 最后是**Clean-Rebuild-Restart**IDE。
    不要
buildConfigField("String", "MODE", "FREE")

buildConfigField("String", 'MODE', '"FREE"')

相关问题