Android 如何使用Gradle读取文件大小?

Android 如何使用Gradle读取文件大小?,android,gradle,android-gradle-plugin,apk-expansion-files,Android,Gradle,Android Gradle Plugin,Apk Expansion Files,简短版本: 如何使用Gradle读取以字节为单位的文件大小 长版本: 我与Android Studio一起使用的Android构建脚本需要计算出资源文件的大小(以字节为单位)。我希望我的脚本能自动完成。我该怎么做 编辑:添加了我现在拥有的代码: task getFileSizeFromObb { doLast { File mainObb = new File("data-android.obb") return mainObb.length()

简短版本:

如何使用Gradle读取以字节为单位的文件大小

长版本:

我与Android Studio一起使用的Android构建脚本需要计算出资源文件的大小(以字节为单位)。我希望我的脚本能自动完成。我该怎么做

编辑:添加了我现在拥有的代码:

task getFileSizeFromObb {
    doLast {
        File mainObb = new File("data-android.obb")
        return mainObb.length()
    }
}


android {

    defaultConfig {
        //...
        manifestPlaceholders = [main_obb_size: getFileSizeFromObb.execute()]
        //...
    }
}
这与

错误:原因:条目中的null值:main\u obb\u size=null


尝试使用下面的代码定义一个gradle/groovy方法来返回您的文件大小

def getFileSizeFromObb() {
    File mainObb = new File("data-android.obb")
    return mainObb.length()
}
并按如下方式调用此方法:

android {

    defaultConfig {
        //...
        println "===++++ >>>>> size = " + getFileSizeFromObb()
        manifestPlaceholders = [main_obb_size: getFileSizeFromObb()]
        //...
    }
}


我已经验证了上述方法,请确保您的文件
数据android.obb
确实存在于路径上

Gradle由Groovy或Kotlin/JVM(取决于您的推进)支持,它们都可以访问Java文件I/O类。因此,创建一个指向资源的
文件
,并使用该文件检查其长度。有什么建议吗?我找不到任何在Gradle中使用Kotlin或Groovy的教程。假设您没有特别选择使用Kotlin,您的Gradle脚本就是Groovy。Gradle(部分)是一种DSL,可以在Groovy或Kotlin脚本中使用。因此,它们需要定义为方法。从那以后就很简单了。