You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio打包APK时为何排除下划线开头文件夹?如何包含?

解决Android打包时assets下划线开头文件夹被排除的问题

嘿,这个问题我之前也碰到过——Android构建工具默认会把下划线开头的assets子文件夹自动排除,导致打包后缺失数据。不过改改Gradle配置就能轻松搞定,给你两种靠谱的解决办法:

方法1:通过Gradle SourceSets强制包含所有assets内容

这是最推荐的方式,不用改动你的原始文件结构。打开你的模块级build.gradle(一般是app/build.gradle或app/build.gradle.kts),找到android代码块,添加以下配置:

Groovy语法(.gradle文件)

android {
    // 保留你原本的其他配置(比如compileSdk、defaultConfig等)

    sourceSets {
        main {
            // 强制扫描assets目录下所有文件和子目录,包括下划线开头的
            assets.srcDirs = fileTree(dir: 'src/main/assets', include: ['**/*'])
        }
    }
}

Kotlin DSL语法(.gradle.kts文件)

android {
    // 保留你原本的其他配置

    sourceSets {
        getByName("main") {
            assets.setSrcDirs(
                fileTree("src/main/assets") {
                    include("**/*")
                }
            )
        }
    }
}

这个配置会告诉Gradle:把src/main/assets下的所有内容(不管文件夹名是不是下划线开头)都打包进APK的assets目录里。

方法2:修改文件夹命名(备选方案)

如果不想动Gradle配置,也可以给下划线开头的文件夹重命名(比如把_data改成data),或者在assets目录下建一个非下划线开头的文件夹,把这些内容移进去。不过这种方法需要改动你的文件结构,灵活性不如第一种。

验证配置是否生效

配置完后,先执行./gradlew clean清理旧的构建缓存,再执行./gradlew assembleDebug打包调试版APK。解压APK后,检查assets目录下是否出现了之前被排除的下划线开头文件夹——如果有,就说明配置生效了。

内容的提问来源于stack exchange,提问作者bublebboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:23:42