Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C+访问StreamingAssets资源+;Android上Unity中的DLL_C#_Android_C++_Unity3d - Fatal编程技术网

C# 从C+访问StreamingAssets资源+;Android上Unity中的DLL

C# 从C+访问StreamingAssets资源+;Android上Unity中的DLL,c#,android,c++,unity3d,C#,Android,C++,Unity3d,我在Unity中为Android开发了一个C#应用程序。另外,我构建了一个定制的外部C++ DLL,它可以从C代码中正确地加载和访问。我还将一些.xml文件添加到StreamingAssets文件夹中,该文件夹工作正常,因为我可以看到这些文件加载到.apk中 目前我的问题是我不能从我的C++库中访问这样的XML文件。一方面,我不知道如何正确地执行,另一方面,我尝试了多种不成功的方法,包括尝试了解我的DLL加载了哪个cwd,然后导航到我需要的文件(由于我经常收到拒绝访问的错误,所以无法工作) 编辑

我在Unity中为Android开发了一个C#应用程序。另外,我构建了一个定制的外部C++ DLL,它可以从C代码中正确地加载和访问。我还将一些.xml文件添加到StreamingAssets文件夹中,该文件夹工作正常,因为我可以看到这些文件加载到.apk中

目前我的问题是我不能从我的C++库中访问这样的XML文件。一方面,我不知道如何正确地执行,另一方面,我尝试了多种不成功的方法,包括尝试了解我的DLL加载了哪个cwd,然后导航到我需要的文件(由于我经常收到拒绝访问的错误,所以无法工作)

编辑:

你的答复实际上让我走上了正确的道路,我解决了这个问题,如下所示:

  • 在应用程序的OnStart()阶段,我使用UnityWebRequest类从JAR文件中提取所需的文件,然后将它们保存在application.persistentDataPath中
  • 之后,我将每个文件的新路径传递给我的DLL,这样我就可以毫无问题地访问它们

    • 在Android上,流化资产在一个罐子中。这可能是您无法访问它们的原因,但正如您在手册中看到的,您可以使用
      WWW
      类在那里检索文件

      在Android上,这些文件包含在一个压缩的.jar文件中 (基本上与标准zip压缩格式相同 文件)。这意味着如果您不使用Unity的WWW类 检索该文件时,需要使用其他软件才能查看内部 .jar存档并获取该文件

      ()

      在Android上,这些文件包含在一个压缩的.jar文件中 (基本上与标准zip压缩格式相同 文件)。这意味着如果您不使用Unity的WWW类 检索该文件时,需要使用其他软件才能查看内部 .jar存档并获取该文件


      JAR是一种包文件格式,通常用于将许多Java类文件以及相关元数据和资源聚合到一个文件中进行分发。JAR文件是包含Java特定清单文件的归档文件它们基于ZIP格式构建,通常具有.jar文件扩展名。


      这意味着您可以像处理zip文件一样处理jar文件。
      有一个fork,上面有关于如何使用它的示例。

      在一个内置的应用程序中,我会将它们复制到目标普通文件夹系统通常可以访问的。正如上面所说的,Android上的路径是
      /storage/simulated/0/Android/data//files
      ,也可以使用
      Android.content.Context.getExternalFilesDir
      访问,谢谢,我知道一些文档。问题是UnityWW类只能从代码的C#端调用。我需要直接从我的C++ DLL加载XML文件。