从 Android 库模块中的资产读取 json 文件

jia*_*hao 2 android json

最近我看到可以在 2018 年 11 月的官方文档中包含 Android 库中的资源更新:https : //developer.android.com/studio/projects/android-library

但它只是简要描述了“资产”是一个可以包含在 Android 库中的可选库。它不包括如何访问它们的方式。

现在我有一个包含多个 Android 库的项目。每个库都包含一个级别或包含在一个抽象级别上。为了实现良好的隔离,理想情况下,每个库都应该能够使用其自己的 Android 库中包含的代码和资产。

所以,我的问题是,因为现在我们可以在 Android 库中包含资产,在我的例子中是一个 json 文件,有没有办法直接从 Android 库本身的代码访问这些资产,而无需使用来自 Android 库的代码应用程序库?

存储层

在此先感谢 Pd:如果有人感兴趣,这里是我项目的源代码:https : //github.com/jiahaoliuliu/chutoro/tree/feature/companiesList

小智 5

看起来您想使用AssetManager

导入后

import android.content.res.AssetManager;
Run Code Online (Sandbox Code Playgroud)

并初始化它

AssetManager assetManager = getAssets();
Run Code Online (Sandbox Code Playgroud)

您可以通过使用加载资产

InputStream input = assetManager.open("PersistentDestinations.json");
Run Code Online (Sandbox Code Playgroud)

请注意,您必须转换 InputStream 才能将其传递给例如 JSONObject。(例如见这里