构建版本生成BuildConfig.java,其中包含更新版本的gradle的androidTest的错误包名称

imzjd6km  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(126)

我有一个应用与Espresso测试关联。它当前可在以下版本的Gradle上正常构建和运行(打开文件-〉项目结构时,我在Android Studio中看到的值)

Android Gradle Plugin Version: 7.1.2
Gradle Version: 7.2

我的Gradle构建文件定义了一些构建配置字段定义。我的测试代码引用了为调试生成的BuildConfig类中的一些字段。如前所述,一切正常。当我构建应用的APK和测试APK的调试风格时,BuildConfig.java会在app/build/generated/source/buildConfig/debug/com/xyz/abc/下生成一个www.example.com文件(类的包是com.xyz.abc)。它包含我在Gradle文件中为应用的调试风格声明的所有字段。另一个BuildConfig.java文件在app/build/generated/source/buildConfig/androidTest/debug/com/xyz/abc/test/BuildConfig.java下生成,这一次该类位于包com. xyz. abc. test中。它仅包含字段DEBUG、APPLICATION_ID和BUILD_TYPE。
在我的测试代码中,只要导入com.xyz.abc.BuildConfig,我就可以引用应用程序的调试BuildConfig类中的任何字段。
我正在尝试升级到更新版本的Gradle和插件,因此我将设置更改为

Android Gradle Plugin Version: 7.3.0-alpha04
Gradle Version: 7.4

然后我重新构建了我的应用和测试APK,如下所示

./gradlew clean
./gradlew assembleDebug assembleDebugAndroidTest

测试APK无法构建,因为每次我在测试代码中使用BuildConfig字段时,编译器都会弹出未定义的引用错误。
查看BuildConfig.java文件时,我发现为测试APK生成的文件位于app/build/generated/source/buildConfig/androidTest/debug/com/xyz/abc/下,而这次,如路径所示,该包是com.xyz.abc,而不是com.xyz.abc。test
当然,每次我在测试代码中导入com.xyz.abc.BuildConfig时,都会引用该类,而不是应用中的类。由于该类只包含DEBUG、APPLICATION_ID和BUILD_TYPE字段,因此无法解析对应用BuildConfig类中字段的任何引用。
我不确定这种行为是什么时候开始的,但一切都很好

Android Gradle Plugin Version: 7.3.0-alpha01
Gradle Version: 7.3.3

这个问题仍然存在于7.3.0-alpha 07(我所知道的插件的最新版本)
这是一个错误吗?是否有某些行为发生了变化?

xtfmy6hx

xtfmy6hx1#

android {
    buildFeatures {
        buildConfig=false
    }
}

android测试时设置为false,其他情况下设置为true。

相关问题