android - 如何将外部可绘制对象添加到android gradle

标签 android android-studio gradle

我有一个 android 项目(使用 AndroidStudio/gradle)布局如下:

./project/app/src/main/res/
./project/art_assets/<category>/drawables/*.png

在给定的布局 XML 中,我想像这样引用 ImageButton 的图形资源:

<ImageButton android:id="@+id/asdf"
    android:src="@drawable/external_graphic_file" />

我在 app/build.gradle 中添加了以下 sourceSets block :

android {
    sourceSets {
        main {
            resources {
                srcDir('../art_assets/category/drawables')
            }
        }
    }
}

我仍然从构建中得到一个错误,它找不到 @drawable/external_graphic_file 的资源,并且 aapt 失败的证据。

如何在 gradle 构建中正确引用外部资源集?我所说的“外部”是指“在 ./app/目录树之外,但在同一项目目录中。”

最佳答案

我能够很好地完成这项工作。我可以编辑我的问题以使其正确,但这样就不再是一个问题了。

唯一的错误是/是 .png 文件需要驻留在 drawables 目录下的 drawable-*dpi/ 目录中。只需按如下方式更改 ./art_assets/ 树即可:

./project/art_assets/<category>/drawables/drawable-xhdpi/*.png

注意附加的 drawable-xhdpi 目录层。

关于android - 如何将外部可绘制对象添加到android gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656383/

相关文章:

android - 如何为 Travis CI 构建模拟 Gradle 的 buildConfigField?

java - 在Android Kotlin上使用 Canvas mask 输入的文本

android - 联想A600在应用程序被杀死后无法保持服务运行

java - QTcreator 使用 android 配置文件构建简单的 qt 项目

java - Android ExpandableListView 不展开/不可点击

android - Cordova:在 Android App 中调用 loadUrl() 时如何设置 HTTP ACCEPT header ?

java - Android Studio - 应用程序崩溃

angular - 错误 :Unable to locate adb within SDK in Android Studio

java - 使用 Gradle 构建的 Java Spring Boot 项目中偶尔出现 BeanCreationException

android - Android Studio中的测试支持库未编译