Android Studio 应用 Build,但未安装或运行某些版本

Android Studio App Builds but doesn't install or run for some flavors

提问人:JoeP 提问时间:10/8/2021 更新时间:7/20/2022 访问量:309

问:

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

这个项目有它的核心,然后有多个重新命名的版本,这些版本通过他们自己的 中分配,例如:FlavorproductFlavorbuild.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

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

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

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

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

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

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

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

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

  • 清洁和重建
  • 使缓存失效并重新启动
  • 完全删除Android Studio并重新安装(必须手动完成,因为它无法通过控制面板工作)
  • 重命名项目
  • 手动删除所有 、 、 文件夹。buildgradleidea
  • 将 and 更改为 28、29 和 30minSdkVersiontargetSdkVersion
  • 将版本更改为 7gradle
  • 构建 APK 并单独安装(也不起作用)
安卓 android-studio android-gradle-plugin android-productflavors android-studio-arctic-fox

评论


答:

0赞 c-an 7/20/2022 #1

这是因为不同的风格有不同的密钥库。

所以,你需要小心。Android 操作系统认为它们不同。