【问题标题】:Why is assetsDir missing in ProcessAndroidResources?为什么 ProcessAndroidResources 中缺少 assetsDir?
【发布时间】:2017-02-24 00:23:21
【问题描述】:

在我为 Android 应用程序构建的 gradle 中,我使用以下代码将构建时生成的一堆图像复制到 APK 文件的 /assets/ 目录中:

android.applicationVariants.all { variant -> 
variant.mergeResources.doLast {
    variant.outputs.each { output ->  
        copy {
            from file("${project.buildDir}/" + "generated_images")
            into output.processResources.assetsDir
        }
    } 
}

def mergeAssets = tasks.getByPath("merge" + "${variant.name.capitalize()}" + "Assets")
mergeAssets.dependsOn(generateAssetImages)

}

错误信息:

* What went wrong:
Execution failed for task ':app:mergeVariant1Resources'.
> Could not get unknown property 'assetsDir' for task     ':app:processVariant1Resources' of
type com.android.build.gradle.tasks.ProcessAndroidResources.

这个以前可以完美运行,但是从 buildToolsVersion "23.0.3" 升级到 buildToolsVersion "25.0.2" 后,output.processResources.assetsDir 没有定义。

发生了什么变化?为什么 assetsDir 不再是“已知属性”?

或者什么是获取 assetsDir 以便我可以将内容复制到此目录的好方法?如果我在构建期间将生成的资产复制到 build\intermediates\assets\{INSERT_VARIANT_NAME_HERE}\ 中,它会起作用。我的解决方法是像这样导出assetDir:

def assetsDir = output.processResources.resDir.toString().replace("res\\merged", "assets")

这暂时可行,但我对此真的不满意。

【问题讨论】:

    标签: android android-gradle-plugin android-build android-build-flavors


    【解决方案1】:

    据我所知,25.0.0 从 gradle-core 1.3.1 更改为 gradle-core 2.3.0,这似乎是一个完全不同的系统。

    这是旧任务:https://android.googlesource.com/platform/tools/base/+/gradle_1.3.1/build-system/gradle-core/src/main/groovy/com/android/build/gradle/tasks/ProcessAndroidResources.groovy

    这是新任务:https://android.googlesource.com/platform/tools/base/+/gradle_2.3.0/build-system/gradle-core/src/main/java/com/android/build/gradle/tasks/ProcessAndroidResources.java

    似乎有多年的并行开发和 25.0.0 谷歌决定切换到一个新的分支。 (至少这是我的猜测)。

    如果您查看几年前停止开发的那个 repo 中的 master 分支。

    看起来我们需要找到一种解决方法来访问资产目录。到现在都没找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2014-04-29
      • 2012-07-26
      相关资源
      最近更新 更多