我已经在Unity for Android中开发了一个C#应用程序。此外,我构建了一个自定义的外部C ++ DLL,该DLL已正确加载并可以从C#代码访问。我还向StreamingAssets文件夹中添加了一些.xml文件,该文件可以按预期工作,因为我看到这些文件已加载到.apk中。
当前,我的问题是我无法从C ++库访问此类xml文件。一方面,我不确定如何正确执行操作,另一方面,我尝试了多种不成功的方法,包括尝试了解DLL加载到哪个cwd中,然后导航到所需的文件(由于我不断地工作,因此无法正常工作)收到访问被拒绝的错误)。
编辑:
您的回复实际上使我走上了正确的轨道,我按照以下步骤解决了该问题:
答案 0 :(得分:1)
在Android上,StreamingAssets位于一个jar中。这很可能就是您无法访问它们的原因,但是正如您在手册中所看到的,可以使用WWW
类在此处检索文件。
在Android上,文件包含在压缩的.jar文件中 (与标准的zip压缩格式基本相同 文件)。这意味着如果您不使用Unity的WWW类 检索文件,您需要使用其他软件才能查看内部 .jar存档并获取文件。
答案 1 :(得分:1)
在Android上,文件包含在压缩的.jar文件中 (与标准的zip压缩格式基本相同 文件)。这意味着如果您不使用Unity的WWW类 检索文件,您需要使用其他软件才能查看内部 .jar存档并获取文件。
JAR是一种包文件格式,通常用于将许多Java类文件以及关联的元数据和资源聚合到一个文件中以进行分发。 JAR文件是包含Java特定清单文件的存档文件。 它们基于ZIP格式构建,通常具有.jar文件扩展名。
这意味着您可以像处理 zip 文件一样使用 jar 文件。 minizip有一个分叉,上面有使用示例。