从 XML 文件中查找另一个模块中的资源 - Android

Look for Resources in another Module from XML File - Android

我的项目作为多个模块。本质上,将有跨多个模块使用的资源。我们称此资源为 logo_image.png

目前,在每个模块的res文件夹中,都存在logo_image.png的副本。这可能是个问题,因为它会吃掉很多 space.

我想做的是创建一个 Common 模块,它存储整个项目中使用的所有资源,并让所有引用指向该 Common 模块中的资源。这样的事情可能吗?这是我的尝试(失败)

activity_main.xml

<ImageView
    android:id="@+id/imageView"
    android:layout_width="300dp"
    android:layout_height="150dp"
    android:src="@common/drawable/logo_image" />   <-- "Unknown reference

您可以在项目中创建一个名为 assets 或您想要的任何其他名称的模块。然后在每个需要访问公共资源的模块中,将该模块作为依赖项包含在模块 build.gradle

implementation project(':assets')

然后您可以像在每个模块中本地定义资产一样访问这些资产。

<ImageView
    android:id="@+id/imageView"
    android:layout_width="300dp"
    android:layout_height="150dp"
    android:src="@drawable/logo_image" /> 

如果您想使用模块来保留公共资源,只需将此插件添加到此模块的 build.gradle 文件中,如下所示

plugins {
   id 'com.android.library'
}

或替换 com.android.application(如果它已在此处定义)