如何跨包引用 Android“资产”?

2024-02-08

我有一个以“免费”和“专业”版本发布的 Android 应用程序。我已经使用从两个版本引用的基础“库”项目设置了我的项目,这样我的包集如下所示:

  • com.example.myapp
  • com.example.myapp.free
  • com.example.myapp.pro

我的基础“库”项目中的 Activity 类之一将帮助文件加载到 WebView 中:WebView.loadUrl(“file:///android_asset/help.html”)。这个类在“免费”和“专业”版本中都得到了扩展(出于本问题范围之外的原因),但我希望这两个版本都引用相同的 HTML 文件(即父包中的文件)。然而,在我当前的设置下,需要将 HTML 文件复制到“file://”的“com.example.myapp.free”和“com.example.myapp.pro”包下的“assets”文件夹中。 /android_asset/" 工作的 URI。

有没有办法指定“file:///android_asset/”URI,以便它访问父包中的“assets”目录?

我发现的部分解决方案涉及从“原始”目录读取 HTML 文件,然后将生成的字符串推送到我的 WebView 对象,但是对于纯文本 HTML 页面(例如带有图像的页面,就像我的一样)。

Cheers.


由于安德鲁怀特没有解释如何做他建议反对的事情,我将向您展示:

Context otherContext = context.createPackageContext("other.package.name", 0);
AssetManager am = otherContext.getAssets();

这看起来并没有那么糟糕。我已经验证这两个包不需要共享用户 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何跨包引用 Android“资产”? 的相关文章

随机推荐

  • 有虚拟 Twain 扫描仪吗?类似于 Daemon Tools 虚拟 CD [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在测试一个扫描应用程序 目前我没有任何扫描仪可以插入它 是否有像 Daemon Tools 那样的
  • 如何将 Nearforums 集成到我当前的 MVC 应用程序中

    我创建了一个 ASP NET MVC 4 0 应用程序 现在我正在尝试寻找一个可以将其自身集成到我的 MVC 应用程序中的第 3 方论坛 我做了一些搜索 发现附近的论坛看起来不错 我已经下载了 Web 和 Db 脚本 我已经阅读了文档并设法
  • 检测浏览器是否为三星手机

    有没有人想出一个好方法来检测客户端的浏览器是否是三星手机 我专门寻找三星 S3 和 Note 2 但如果它能匹配 S2 和 Note 1 或其他三星手机 我就可以接受 面向未来的东西 即可能与 S4 Note3 一起使用显然是理想的 似乎没
  • jQuery 验证错误类未从字段中删除

    我有一个 jQuery 验证的自定义方法 基于斯帕克的回答 https stackoverflow com questions 15238958 ensure at least one from a group of three check
  • 如何模式匹配继承树中的抽象父类

    我是 scala 新手 有 java 背景 有没有一种方法可以在类继承树中以叶子作为案例类和节点抽象类或特征来模式匹配超类 或特征 据我所知 案例类继承是不允许的 我认为在大型继承树中匹配抽象类的模式会非常有帮助 下面代码中最后一个case
  • NullInjectorError:没有ReducerManager的提供者

    我正在使用新的 ngrx 5 这是保存减速器和 featureSelector 的文件 import AppState from interfaces app state import ActionReducerMap createFeat
  • Java 中的树实现(根、父级和子级)

    我需要创建一个类似于 Java 中所附图像的树结构 我发现了一些与此相关的问题 但我还没有找到令人信服且解释清楚的答复 应用业务包括食品超级品类 主菜 甜品等 每个类别都可以有父项或子项等 import java util ArrayLis
  • 使密封类层次结构可解析

    我有类似下面的内容 我想将它们作为意图参数传递 sealed class BasketType Parcelable class BasketOne val basketId String BasketType constructor pa
  • travis go error '命令“eval go get -t -v ./...”失败'

    我有一个非常简单的设置 Travis yml 文件 https github com openassistive OpenATFrontEnd blob master travis yml https github com openassi
  • 当我将文本从 java servlet 加载到 JTextPane 时,为什么会丢失换行符?

    我尝试使用 java servlet 加载包含多行文本的文本文件的内容 当我在浏览器中测试 servlet 时 它工作正常 文本加载新行字符 但是当我将它加载到我的 swing 应用程序中的字符串然后使用textpane setText t
  • 从 int** 到 const int** 的转换

    为什么我会进入这段代码 void foo const int int main int v new int 10 foo v return 0 这个错误 invalid conversion from int to const int fp
  • 使用 Mapstruct 作为 JOOQ 的 RecordMapper

    我想实现我自己的RecordMapper并使用 Mapstruct 将 Record 映射到 POJO 我不太明白如何实现这一点 我遵循了文档的这一部分 https www jooq org doc 3 13 manual sql exec
  • unicode中字符串的长度不同

    尽管字符串中的字符数相同 但为什么以下字符串的长度不同 echo strlen 馐 馑 馒 馓 馔 馕 首 馗 馘 br echo strlen br Outputs 35 26 第一批字符每个占用 3 个字节 因为它们在 39000 个字
  • 如何删除信号处理程序

    我已经制作了以下信号处理程序 struct sigaction pipeIn pipeIn sa handler updateServer sigemptyset pipeIn sa mask sa sa flags SA RESTART
  • 如何在iPhone上进行Base64编码

    如何在iPhone上进行Base64编码 我发现了一些看起来很有希望的例子 但永远无法让它们在手机上工作 你可以看一个例子here http iosdevelopertips com core services encode decode
  • 图像捕获延迟 - React Native Camera / Expo Camera

    我正在尝试实现与 Facebook 或 Instagram 相同的功能 即时预览相机拍摄的图像 此时 当调用此函数时 我的 take 被正确获取 takePicture async function if this camera this
  • 将 8 字节的小端二进制转换为双精度浮点数

    我有一个二进制文件 我逐字节读取 我遇到一个 8 字节长的部分 包含一个双精度浮点 小端 我不知道如何读取它并通过掩蔽和 或转换正确计算它 具体来说 文件类型是 LAS 但这并不重要 Java有什么技巧吗 您可以使用ByteBuffer h
  • Python Fabric:如何响应键盘输入?

    我想自动响应某些程序提示的某些问题 例如 mysql 提示输入密码 或者 apt 询问 是 或 当我想使用 manage pyrebuild index 重建我的干草堆索引时 对于 MySQL 我可以使用 password 开关 并且我确信
  • 在 MSVC 中处理 __attribute__

    我想知道处理包含 GCC 的代码的最佳方法是什么 attribute 使用 MSVC 时的扩展 以下是处理此问题的安全方法 define attribute x blank should simply ignore thanks to C
  • 如何跨包引用 Android“资产”?

    我有一个以 免费 和 专业 版本发布的 Android 应用程序 我已经使用从两个版本引用的基础 库 项目设置了我的项目 这样我的包集如下所示 com example myapp com example myapp free com exa