2017-01-27 13 views
1

Я делаю плагин android для Unity, мне нужно интегрировать XMPP в Unity, поэтому сначала я пытаюсь создать соединение XMPP и отправлять и получать сообщение. Это работает отлично в андроид, я могу отправить и получить сообщение Но когда я экспортировать .jar файл и использовать в Unity, так что я получил ниже ошибки, когда я создать соединениеSmackInitialization: Не удалось определить версию Smack

SmackInitialization: Could not determine Smack version 
    java.lang.NullPointerException: lock == null 
    at java.io.Reader.<init>(Reader.java:64) 
    at java.io.InputStreamReader.<init>(InputStreamReader.java:122) 
    at java.io.InputStreamReader.<init>(InputStreamReader.java:57) 
    at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:61) 
    at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96) 
    at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:38) 
    at com.arvaan.myplugins.ToastExample.connectXMPP(ToastExample.java:99) 
    at com.unity3d.player.UnityPlayer.nativeRender(Native Method) 
    at com.unity3d.player.UnityPlayer.a(Unknown Source) 
    at com.unity3d.player.UnityPlayer$b$1.handleMessage(Unknown Source) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:234) 
    at com.unity3d.player.UnityPlayer$b.run(Unknown Source) 

Я не знаю, что проблема с Smack, я новичок в Unity, я знаю, как создавать плагины и метод вызова в Unity, но не знаю, что здесь не так.

Пожалуйста, проверьте код:

public class ToastExample extends UnityPlayerActivity implements ConnectionListener, ChatManagerListener, RosterListener, PingFailedListener, StanzaListener, MessageListener, ChatMessageListener { 

private static final String TAG = ToastExample.class.getSimpleName(); 
private AbstractXMPPConnection mConnection = null; 
private ChatManager chatManager; 
private Chat chat; 
private Context context; 
private String userName = ""; 
private String passWord = ""; 
private String objectName = ""; 
private static ToastExample instance; 

public ToastExample() { 
    this.instance = this; 
} 
public static ToastExample instance() { 
    if (instance == null) { 
     instance = new ToastExample(); 
    } 
    return instance; 
} 
public void setContext(Context context) { // This is also working fine 
    Log.e(TAG, "setContext called"); 
    this.context = context; 
} 
public void showMessage(String message) { // I can able to see toast 
    Toast.makeText(this.context, message, Toast.LENGTH_SHORT).show(); 
} 

public void connectXMPP(String host, int port, String userName, String passWord) { 
    Log.e(TAG, "_connectXMPP called"); 
    XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder(); // Here i got error 
    configBuilder.setUsernameAndPassword(userName, passWord); 
    ............... 
    ............... 
} 

Я использую ниже .jar файл в My Plugin и Unity

smack-core-4.1.4.jar 
smack-extensions-4.1.4.jar 
smack-im-4.1.4.jar 
smack-android-4.1.4.jar 
smack-android-extensions-4.1.4.jar 
smack-tcp-4.1.4.jar 
jxmpp-util-cache-0.4.2.jar 
jxmpp-core-0.4.2.jar 
jxmpp-jid-0.4.2.jar 
jxmpp-stringprep-libidn-0.4.2.jar 
minidns-core-0.2.0.jar** 

Кто-то также сталкивается этот вопрос, но не нашел Check more

Пожалуйста, помогите мне разобраться с этой проблемой, спасибо в Advance. !!!

ответ

1

Поскольку никто не ответил здесь я, как я решил его через 4 дня R & D:

  1. Пожалуйста exrect все классы Смак-ядро-4.1.1.jar файл и прошлое внутри вашего приложения.
  2. Существует еще 3 файла: версия, smack-config.xml, jul.properties, вставьте этот файл в папку Assests внутри приложения.
  3. В пакетах Smack есть один класс: SmackInitialization.java, замените ниже код. Code Here
  4. После того, как вы сделали, сделайте файл .Jar и используйте внутри своего Единства. Check Here

Сообщите мне, если у вас есть такая же ошибка, я рад помочь вам в любое время для любого решения.

Спасибо

+0

Привет, Я пробовал ваше решение, но я продолжаю получать ошибки (с помощью dns resolver). Можете ли вы отправить мне по электронной почте базовый проект, в котором вы работаете (только с чатами)? Я бы очень признателен этому. Спасибо. –

+0

пожалуйста, вы можете поделиться своей ошибкой –

+0

https://gist.github.com/mmvlad/35f51f8c438651608350273437c1fc65 Я добавил привкус-распознаватель-minidns, minidns-ядро для LIBS, но ошибка все еще существует –

 Смежные вопросы

  • Нет связанных вопросов^_^