首页 > 解决方案 > Android Studio 应用程序构建但不安装或运行某些风格

问题描述

我在 Android Studio 项目中遇到了一个非常奇怪的问题,我完全不知所措。

这个项目有它的 core Flavor,然后有多个通过它们自己的productFlavorin分配的重新命名的版本build.gradle,例如:

productFlavors {
    mainBrand {
        applicationId('my.main.brand.app')
        buildConfigField "String", "CUSTOM_BRAND_STRING", "I am the main brand"
    }
    secondBrand {
        applicationId('my.second.brand.app')
        buildConfigField "String", "CUSTOM_BRAND_STRING", "I am the second brand"
    }
    thirdBrand {
        applicationId('my.third.brand.app')
        buildConfigField "String", "CUSTOM_BRAND_STRING", "I am the third brand"
    }
    fourthBrand {
        applicationId('my.fourth.brand.app')
        buildConfigField "String", "CUSTOM_BRAND_STRING", "I am the fourth brand"
    }
}

每个品牌都可以有自己的文件夹,拥有自己的资源,文件夹的命名与Flavor名称相同。如果品牌没有自己的文件夹,或者其文件夹中不包含资源,则它只使用主文件夹中所需的资源。

这一切已经工作了一年多,直到最近我才准备好在创建他们签名的 APKS 之前对每个品牌的 Debug 版本进行最终测试。我一直在对第二个品牌进行更改,然后切换到第三个品牌以确保一切正常,但是当我进行测试时,mainBrand我突然无法将其安装到物理设备或模拟器上。

切换到mainBrand Flavor并按下Run按钮后,它成功构建,没有任何错误,但永远不会在设备上打开。最终,大约 300 秒后,Run窗口上会出现一条消息,说Timed out waiting for process (my.main.brand.app) to appear on *device-name*

我在构建或 logcat 中没有报告任何错误,它甚至似乎都没有尝试安装。

实际上有大约 7 个Flavors设置,虽然只使用了 4 个,但我检查了所有这些设置,除了mainBrandand之外一切正常sixthBrand

在采取步骤删除 Android Studio 之前,我提交并推送了我的项目git,并将它们合并到我的笔记本电脑中。在我的笔记本电脑上,mainBrand和大多数其他人一样,工作正常,但表现出fourthBrand与我的主计算机上fifthBrand完全相同的问题!mainBrand

我花了几个小时在笔记本电脑上进行测试,复制“工作”Flavor及其相关文件,并重命名它们。最初使用新名称的直接副本secondBrandCopyTest可以工作,并且随着我逐渐将所有文件和设置改回来,似乎可以继续工作gradle,但是一旦我将其Flavor名称重新命名为secondBrand. 它也不适用于我以前从未使用过的其他几个名称。最终我注意到我所有的短Flavor名称测试都失败了,在我的笔记本电脑上,我Flavors通过将它们全部重命名为它们自己名称的更长版本来完成所有工作,例如secondBrandLongerName. 我拒绝相信这是合法的修复,但我认为它会同时工作,我会尝试找出为什么这个“修复”

我回到我的主计算机并应用相同的逻辑 - 重命名所有Flavors 和关联的文件夹名称,但它仍然不起作用!

关于如何开始找出造成这种情况的原因的任何想法?我尝试过的其他事情:

标签: androidandroid-studioandroid-gradle-pluginandroid-productflavorsandroid-studio-arctic-fox

解决方案


推荐阅读