当前位置: 首页 > 知识库问答 >
问题:

Android Gradle product flavor在子库中失败

施琦
2023-03-14

这个问题应该可以解决我需要更新子库内容提供程序的另一个问题:使用Gradle库中的生成类型在一台设备上运行使用ContentProvider的同一个应用程序

我在根应用程序中有一个产品风格,它成功地更改了包名称,因此我可以部署不同版本的应用程序。当我尝试在子库中添加相同的产品风格时,构建失败,因为根应用程序无法加载从子库引用的java类,因为现在包名称已经更改了?我认为产品风格不会影响java类包结构?

ATCApp。gradle根应用程序

...
dependencies {
...
compile project(':libraries:FYC')
...
}

...
android
{
    ...
    productFlavors
    {
        prod {
           packageName "com.company.android"
        }

        qa {
           packageName "com.company.android.qa"
        }
    }
}

FYC。gradle子库

...
android
{
    ...
    productFlavors
    {
        prod {
           resValue "string", "authority", "com.company.android.fyc.models.listing.listingprovider"
        }

        qa {
           resValue "string", "authority", "com.company.android.qa.fyc.models.listing.listingprovider"
        }
    }
}

在子FYC库中添加上述产品风格会导致根应用程序引发错误:

/src/main/java/com/company/android/HomeBroadcastReceiver。java:7:包com。公司Androidfyc。控制器不存在导入com。公司Androidfyc。控制器。FYCHomePagerActivity;

谢谢你的帮助!

共有1个答案

安坚诚
2023-03-14

我很确定你不能依赖于口味(又名连锁口味),因为Gradle没有提供表达这种东西的方法。根项目可以根据风格有不同的依赖关系,但这些依赖关系本身不能是显式的风格。子项目的产出应具有可预测性和一致性。

 类似资料:
  • 我正试图在一个过程中运行以下代码。它是过程中之后的第一行代码 当我在phpmyadmin SQL环境中运行它时,它工作得很好。但当我调用该过程时,我得到的错误是: “WHERE子句”中得列“DeleteRequestsInitial.Email”未知 我看了很多关于“未知列”错误的文章,但没有一个建议的解决办法似乎对我有效。

  • 我们有一个新项目,并将其托管在我们自己的Gitlab服务器中。我是从 成功地 假设我在gitlab中的用户名是scott@myacme.com. 我们在Github中还有一个现有项目,我使用的用户名是scott@yahoo.com 在新项目中,我们在package.json中有一个条目指向现有项目。注意https 现在,当我执行npm安装时,它失败了,当它试图在github.com.它说无效的用户

  • 考虑以下文件: 以下查询: 返回预期结果: 如果文档如下所示: 然后: 产量: 但是 失败原因: "errmsg":"$表达式中不允许包含字段" 以及: 失败原因: “errmsg”:“字段路径“b”不以$开头” 使其工作的唯一方法是使用运算符。 如果参数是子文档的数组而不是文档中的字段,为什么我们应该使用运算符?

  • 我已经将一个JAR文件部署到一个自定义的Artifactory存储库(名为my_custom_repo),并试图在Maven构建中访问它。我的POM文件使用标记指向我的artifactory回购: 并且我的依赖项设置如下: 我尝试了一些事情,包括一个mvn清洁安装。失败持续存在。 我的POM文件、Maven或Artifactory是否有一些配置可以使我成功地编译我的项目?

  • 我有一个罐子用另一个罐子做库。我希望它们都被混淆。 引用ProGuard文档: ProGuard要求指定输入jar的库jar(或war、ears、zips或目录)。这些本质上是编译代码所需的库。ProGuard使用它们来重建正确处理所必需的类依赖关系。库罐子本身始终保持不变。您仍然应该将它们放在最终应用程序的类路径中。

  • 问题内容: 我遇到错误了; 问题答案: 错误是 看来您有一个指的是您尚未声明的。 您需要具有以下声明