【问题标题】:Best way to create a Android XMPP chat client in Unity3D在 Unity3D 中创建 Android XMPP 聊天客户端的最佳方法
【发布时间】:2012-08-23 18:01:17
【问题描述】:

我正在尝试使用 Unity/C#/Mono 创建 iOS 和 Android XMPP 聊天客户端。我使用 Jabber.net 获得了一个适用于 iOS 的功能齐全的聊天客户端,但它不适用于 Android。那么有没有人知道有一个库可以与 Unity/C# for Android 一起使用?

这篇文章讨论了 Android 和 XMPP 解决方案,但没有找到任何将其连接到 Unity 的方法: Android and XMPP: Currently available solutions

这是我关于让 Jabber.net 使用 Unity 为 Android 工作的问题: Jabber.net on Unity/Android error (No JNI_OnLoad found in /system/lib/libc.so, skipping init)

【问题讨论】:

  • 我已经为 mono 2.0 编译了 jabber-net 库。但是当我在设备中运行它时,我得到了这个异常。 'ExecutionEngineException: Attempting to JIT compile method' 你是怎么解决的?
  • 不记得了。它可能与剥离级别或 C# 版本有关吗? forum.unity3d.com/threads/…

标签: c# android xmpp chat unity3d


【解决方案1】:

由于没有人在这里回答我是如何解决的:

  1. 在 Eclipse 中一个新的 Android 项目中用于 Android 的 ASmack
  2. 使用登录、注销、发送消息等基本公共方法为 ASmack 构建自定义包装器。
  3. 解压为 jar 库。
  4. 将 jar 导入 Unity3D
  5. 使用 Unity3D 的 AndroidJNI 方法调用 jar 的公共方法
  6. 在 Java 包装器中设置回调并使用“UnityPlayer.UnitySendMessage()”调用(必须将 Unity 应用程序包中的 classes.jar 导入 Eclipse 项目进行编译)
  7. 成功了!

需要一些工作并且需要一些时间来调试和构建,但它确实有效。

【讨论】:

  • 抱歉,视频不可用。
  • 很抱歉听到这个消息(这不是我的视频)。删除了链接。希望我的说明会有所帮助。
  • 那iOS客户端呢?据我所知,ASmack 不会在 iOS 上运行。
  • 如问题中所述,我们使用 Jabber.net for iOS。请注意,这个问题是 2012 年发布的,不确定今天最好的选择是什么。
  • 您好@Sunkas,我正在制作XMPP插件,请您帮忙展示一些流程,或者您可以分享您的代码,谢谢
【解决方案2】:

我建议使用MatriX XMPP SDK,而不是使用 ASmack 进行所有这些操作。我们将这个库用于我们的 Unity 项目。

它可以在 Win、Mac、iOS、Android 上运行,无需任何特殊操作。这个库只有 1 个问题 - 无法在 WebPlayer 中运行

【讨论】:

  • 感谢您的回答。我已经很久没有问这个问题了。我记得当时我通过电子邮件向 MatriX 发送了一些问题,当时我们无法使用它,因为它缺乏一些要求。不记得是什么了。
  • @Sunkas 2 年前,AFAIK,Unity 中的 Sockets 和 Pro 许可证存在问题)
  • 这仍然对您有用吗?我一直在尝试让它在 Android 上运行,但我收到有关 System.EntryPointNotFoundException: getifaddrs 的错误
  • @AlejandroHuerta 我可以说它肯定可以在独立构建中工作。我明天将在 Android 和 iOS 上测试它。
  • @AlejandroHuerta 我已经在 iOS 上测试了 Matrix。有用。稍后将尝试 Android。
猜你喜欢
  • 2023-03-29
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
相关资源
最近更新 更多