【发布时间】:2019-05-22 20:23:42
【问题描述】:
我在 Unity for Android 中开发了一个 C# 应用程序。此外,我构建了一个自定义的外部 C++ DLL,该 DLL 已正确加载并可从 C# 代码访问。我还在 StreamingAssets 文件夹中添加了一些 .xml 文件,这些文件按预期工作,因为我可以看到这些文件加载到 .apk 中。
目前我的问题是我无法从我的 C++ 库中访问此类 xml 文件。一方面我不确定如何正确地做到这一点,另一方面我尝试了多种不成功的方法,包括试图了解我的 DLL 在哪个 cwd 中加载,然后导航到我需要的文件(因为我一直没有工作收到拒绝访问错误)。
编辑:
您的回复实际上使我走上了正轨,我解决了以下问题:
- 在应用程序的 OnStart() 阶段,我使用 UnityWebRequest 类从 JAR 文件中提取所需文件,然后将它们保存在 Application.persistentDataPath 中
- 之后,我将每个文件的新路径传递给我的 DLL,这样我就可以毫无问题地访问它们。
【问题讨论】:
-
在构建的应用程序中,我会将它们复制到 Application.persistentDataPath 中,目标普通文件夹系统通常可以访问该地址。正如它所说,Android上的路径是
/storage/emulated/0/Android/data/<packagename>/files,也可以使用android.content.Context.getExternalFilesDir访问