gpt4 book ai didi

android - 无法找到 : ComponentInfo{} - while packagename for ProductFlavor was changed manually 的检测信息

转载 作者:行者123 更新时间:2023-11-28 20:29:14 28 4
gpt4 key购买 nike

我尝试为我的 Android 应用程序的某种风格运行 Instrumentation Test,并且总是得到这个:

Test running failed: Unable to find instrumentation info for:     ComponentInfo{<packackename>/android.support.test.runner.AndroidJUnitRunner}
Empty test suite.

这只发生在我必须“手动”更改 build.gradle 中的包名称的特定 productFlavor 中:

 applicationVariants.all { variant ->
def flavorName = variant.getVariantData().getVariantConfiguration().getFlavorName()
def mergedFlavour = variant.getVariantData().getVariantConfiguration().getMergedFlavor();

if (flavorName.toLowerCase().contains("foobar")) {
mergedFlavour.setApplicationId(mergedFlavour.getApplicationId() + ".foobar")
}
}

我已经尝试在 android-testing.gradle 中做同样的事情,但实际上所有的包名看起来都很好:

Installing de.test.foobar.debug
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/de.test.foobar.debug"
pkg: /data/local/tmp/de.test.foobar.debug
Success

Installing APK:
Uploading file to: /data/local/tmp/de.test.foobar.debug.test
Installing de.test.foobar.debug.test
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/de.test.foobar.debug.test"
pkg: /data/local/tmp/de.test.foobar.debug.test
Success

如果我删除这个特定产品 flavor 的包名的“手动”更改,所有测试都可以正常执行。我已经尝试更改 instrumentationRunner 并确保它在测试执行的配置中是相同的 - 但不幸的是没有运气......

如果执行测试,是否有可能覆盖更改后的 applicationId?

感谢您的每一次输入!

最佳答案

如果您最近升级到 Android Studio 2.x 并启用了 MultiDex(即时运行在某些时候需要它),您需要在 gradle.build 中添加以下内容

defaultConfig {
...

multiDexEnabled true // <- if you have this you need the following
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"

...
}

关于android - 无法找到 : ComponentInfo{} - while packagename for ProductFlavor was changed manually 的检测信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36351967/

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