1

所以,我有以下项目结构:

我有我的主要项目,其中包含一些不错的布局。我也有我的图书馆项目,其中有一些颜色、尺寸值等。

主要项目

  • 调试 buildType
  • env1 构建类型
  • env2 构建类型

图书馆项目

  • 调试 buildType
  • 发布 buildType

在添加自定义 buildTypes 之前,一切都很完美:主项目有布局,我使用了库项目中的 res/drawables/colors。

在我将自定义 buildTypes 添加到我的主项目 gradle 后,我无法再构建项目,说找不到具有该名称的资源。重要的是,这仅在我选择其他调试 buildType 时才会发生。使用调试它仍然有效,但我无法在端点之间进行更改。

有人可以告诉我,为什么库项目无法提供资源(使用调试配置)?

任何可能的解决方案?

我想要的:最终 APK == 任何自定义 buildType + 库调试 buildType

我现在能做的:final APK == debug buildType + debug BuildType

请从我的主要项目的 gradle 中找到代码:

`debug{
  

可调试真;<br> testCoverageEnabled true; <br> //默认值 <br> resValue "string", "app_name", "MyApp S1" <br> buildConfigField "String", "applicationName", '"MyApp S1"' <br> buildConfigField "String", " applicationVersion", '"4.0"' <br> } <br> ENV2 { <br> initWith(buildTypes.debug) applicationIdSuffix '.envtwo' <br> versionNameSuffix “_ENV 2” <br> resValue “string”, “app_name” , “MyApp ENV2” <br> buildConfigField "String", "applicationName", '"MyApp ENV2"' <br> } `

错误信息:

/app/src/main/res/layout/failover_tutorial.xml

错误:(1) 未找到与给定名称匹配的资源(位于“背景”,值为“@color/manual_bg_color”)。

failover_tutorial.xml 位于主项目中,@color 应该来自库。

4

1 回答 1

1

因此,我找到了以下解决方案:

  1. 单击应用程序模块并转到模块设置
  2. 在左侧模块列表中选择“应用程序”并转到“依赖项”选项卡
  3. 查找您的库项目作为依赖项
  4. 确保“范围”不是“调试编译”,如果它设置为“编译”

通过这样做,它将与您的所有 buildTypes 一起编译。

于 2017-07-11T18:55:15.837 回答