Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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# 将WIndows应用商店MonoGame应用程序转换为Android_C#_Android_Xamarin_Monogame - Fatal编程技术网

C# 将WIndows应用商店MonoGame应用程序转换为Android

C# 将WIndows应用商店MonoGame应用程序转换为Android,c#,android,xamarin,monogame,C#,Android,Xamarin,Monogame,我对Xamarin很陌生。我有一些已发布的Windows应用商店应用程序,希望将它们转换为Android。我正试图用Xamarin来做这个。我只是使用Xamarin的免费版本。到目前为止,我的情况如下: 我正在尝试两个应用程序——一个是使用Monogame构建的,另一个只是基于WinRT框架构建的。 我已经设法让他们都进入了Xamarin工作室,基本上是通过破解csproj文件 我收到生成错误,因为它缺少引用。看起来确实有一些等效的Mono/.Net4库,但是像Storage之类的东西似乎不见了

我对Xamarin很陌生。我有一些已发布的Windows应用商店应用程序,希望将它们转换为Android。我正试图用Xamarin来做这个。我只是使用Xamarin的免费版本。到目前为止,我的情况如下:

我正在尝试两个应用程序——一个是使用Monogame构建的,另一个只是基于WinRT框架构建的。 我已经设法让他们都进入了Xamarin工作室,基本上是通过破解csproj文件

我收到生成错误,因为它缺少引用。看起来确实有一些等效的Mono/.Net4库,但是像
Storage
之类的东西似乎不见了

所以,我的问题是:我的做法是否正确?如果是,我是否遗漏了一个步骤(“转换依赖项”或其他)

如果我没有采取正确的方法,那么我应该怎么做(我发现很少有关于这个主题的在线资源)

编辑:

以下是我从Xamarin应用程序中得到的一些特定错误:

以及我的推荐人:

编辑:


经过进一步的研究,我唯一无法解释为缺少的依赖项是
Microsoft.Xna.*
。其他的都在Android/iOS上有不同的实现。

这段视频可能会回答您的问题。如果存在PCL等价物,则很可能需要将引用替换为PCL等价物


您将能够使用Xamarin的大部分现有代码

但是,您在使用这些特定库时遇到的错误是因为在iOS和Android中Xamarin不存在这些库。因此,无论您拥有什么功能,都需要使用可用的库进行返工

例如,您将使用Android.OS.Storage而不是Windows.Storage

有关详细信息,请参阅他们的文档:

编辑 对于XNA,如果您使用MonoGame,所有这些都应该可以移植:

我不知道为什么它没有捆绑在Xamarin中,但这会吸引你

编辑 这是从以下Xamarin文档中获取的:

创建项目后,需要将各种Cocos2D XNA依赖项添加到解决方案中。从下载Cocos2D XNA和MonoGame源代码的位置添加以下项目:

box2d.iOS – 2D physics library. We’ll use this in later tutorials.
cocos2d.iOS – Cocos2D-XNA for iOS.
Lidgren.Network.iOS – Networking library used by MonoGame.
MonoGame.Framework.iOS – MonoGame for iOS.

您拥有的代码显然是特定于平台的。你需要把它抽象出来。没有一个向导可以获取任意代码并使其在Android上工作(至少目前还没有)。我也遇到了与Microsoft.Xna.Framework相关的错误,我认为这是Monogame框架的一部分。我认为您需要发布一些您遇到的特定错误。解决一个或两个问题可能有助于解决其余问题,但无论如何,还是要发布一些。我已经添加了从一个特定文件中得到的错误。为什么不从头开始创建项目呢?PS:我想我以前看过这段视频。我会再看一遍,但我不记得有人提到过Monogame。好吧,我是通过Windows.Storage进入这一阶段的。但是,XNA名称空间不存在。这肯定是monogame的全部症结所在吗?Windows.Data.Xml.Dom可能无法在android上使用。考虑使用Stask.xML.LIQ代替XBooX、XLead和XAttor。您可以使用条件编译。创建四个聚合平台,称它们为Windows调试和Windows发行版,以及一个Android调试和Android发行版。然后在每个平台的属性中定义符号目标为WINDOWS WIN_DEBUG、WINDOWS WIN_RELEASE、ANDROID AN_DEBUG、ANDROID AN_RELEASE。然后为Android上不支持的东西构建mono替换,并包装特定于平台的代码#如果ANROID{}I可能缺少一些东西。我已经看了monogame GitHub页面。我已经下载了这个(这样我就可以首先创建商店游戏),那么我需要如何以不同的方式安装monogame才能让Android识别它呢?