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

如何在productFlavor为amazon时正确引用对应assets的api_key.txt?

解决Amazon Product Flavor下无法读取assets目录文件的问题

我来帮你搞定这个问题!首先,你之前的sourceSets配置方向是对的,但细节上没处理到位,导致运行时没法正确加载对应flavor的assets文件,咱们一步步来调整:

第一步:修正sourceSets配置

你当前的配置只指定了amazon flavor的assets目录,但Android构建系统默认会合并不同flavor和buildType的资源,需要确保amazon flavor的assets目录被正确识别且优先级正常。可以把配置改成这样:

android {
    // ... 保留你原有的其他配置
    productFlavors {
        amazon {
            // 这里可以添加flavor专属配置,比如applicationId后缀等
        }
        // 其他flavor配置...
    }

    sourceSets {
        amazon {
            // 简化路径写法,gradle会自动基于模块根目录(app/)查找
            assets.srcDirs = ['src/amazon/assets']
            // 如果该flavor还有专属res资源,也可以一并配置:
            // res.srcDirs = ['src/amazon/res']
        }
    }
}

第二步:确保代码读取assets的方式正确

有时候问题不在配置,而是读取逻辑出错。要确保通过当前Context的assets对象读取文件,不要硬编码路径:

// 正确的assets文件读取示例
try {
    InputStream inputStream = getAssets().open("api_key.txt");
    int fileSize = inputStream.available();
    byte[] buffer = new byte[fileSize];
    inputStream.read(buffer);
    inputStream.close();
    String apiKey = new String(buffer, StandardCharsets.UTF_8);
    // 后续使用apiKey的逻辑
} catch (IOException e) {
    e.printStackTrace();
}

第三步:清理并重新构建项目

旧的构建缓存可能导致资源未被正确替换,执行以下操作:

  • 点击Android Studio菜单栏的Build -> Clean Project
  • 接着点击Build -> Rebuild Project
  • 或者终端直接执行:./gradlew clean assembleAmazonDebug(根据你的buildType调整后缀)

额外检查点

  • 确认app/src/amazon/assets/api_key.txt文件确实存在,且文件名大小写完全匹配(Android assets文件名区分大小写)
  • 检查main目录或其他flavor目录下是否有同名的api_key.txt,如果有,暂时移除测试——amazon flavor的文件理论上会覆盖同名资源,但缓存或合并规则可能出问题。

调整后应该就能在amazon flavor的构建中正确读取到对应的api_key.txt文件了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:11:08