从Android库模块的资产中读取json文件
最近,我看到可以在Android库中包含资产,并在2018年11月的官方文档中进行更新: 但它只是简单地描述了“资产”是一个可选库,可以包含在Android库中。它不包括如何访问它们 现在我有一个有几个Android库的项目。每个库包含一个级别,或者它包含在一个抽象级别上。为了实现良好的隔离,理想情况下,每个库都应该能够使用自己的Android库中包含的代码和资产 所以,我的问题是,既然现在我们可以包括资产,在我的例子中是一个json文件,在Android库内部,有没有任何方法可以直接从Android库本身的代码访问这些资产,而不使用应用库中的代码 提前谢谢 P.d.:如果有人感兴趣,这里是我项目的源代码:从Android库模块的资产中读取json文件,android,json,Android,Json,最近,我看到可以在Android库中包含资产,并在2018年11月的官方文档中进行更新: 但它只是简单地描述了“资产”是一个可选库,可以包含在Android库中。它不包括如何访问它们 现在我有一个有几个Android库的项目。每个库包含一个级别,或者它包含在一个抽象级别上。为了实现良好的隔离,理想情况下,每个库都应该能够使用自己的Android库中包含的代码和资产 所以,我的问题是,既然现在我们可以包括资产,在我的例子中是一个json文件,在Android库内部,有没有任何方法可以直接从And
看起来您想使用 进口后
import android.content.res.AssetManager;
并初始化它
AssetManager assetManager = getAssets();
您可以使用
InputStream input = assetManager.open("PersistentDestinations.json");
请注意,您必须转换InputStream才能将其传递给例如JSONObject。(例如,请参阅)您不能使用FileUtils.readFileToString(新文件(路径),Charset.defaultCharset())进行读取吗;嗯,这是一种非常残忍的方式。如果Android为您提供了一种更好的getAssets方法,为什么我们不使用它呢?我不确定这一点,但getAsserts是一种在ContextWrapper上实现的方法,至少我可以从Android库访问它,我认为这是不可能的。您能提供一个更完整的答案吗?通过传递上下文并使用AssetManager实际上是可行的。谢谢你的回答。