无法与 aSmack 4.0.2 建立新连接

2024-03-28

我正在学习 Android 编程,这几天我一直在努力解决这个问题。我正在编写一个应该连接到 XMPP 服务器的 Android 应用程序。我总是遇到同样的错误,并且真的不知道我做错了什么。我尝试过通过谷歌找到的示例代码,但也无法与它们建立连接。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Context context = getApplicationContext();
    SmackAndroid.init(context);

    ConnectionConfiguration ConnectionConfiguration = new ConnectionConfiguration("192.168.0.101", 5222);
    ConnectionConfiguration.setDebuggerEnabled(true);
    XMPPConnection connection = new XMPPTCPConnection(ConnectionConfiguration);


  try {
    connection.connect();
} catch (ConnectionException e) {
    Log.e("ERROR", "ConnectionException", e);
    for (int i = 0; i < e.getFailedAddresses().size(); i++) {
        HostAddress element = e.getFailedAddresses().get(i);
        Log.e("ERROR", element.getErrorMessage().toString());
    }
} catch (Exception e) {
    Log.e("ERROR", "Exception", e);
}
   // Log into the server
   try {
    connection.login("user", "password", "SomeResource");
   } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

这是我收到的错误:

08-11 15:48:27.476: E/ERROR(11117): ConnectionException
08-11 15:48:27.476: E/ERROR(11117): org.jivesoftware.smack.SmackException$ConnectionException
08-11 15:48:27.476: E/ERROR(11117):     at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:433)
08-11 15:48:27.476: E/ERROR(11117):     at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:808)
08-11 15:48:27.476: E/ERROR(11117):     at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:396)
08-11 15:48:27.476: E/ERROR(11117):     at com.example.gps_pubsub.MainActivity.onCreate(MainActivity.java:34)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.Activity.performCreate(Activity.java:5047)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.ActivityThread.access$700(ActivityThread.java:134)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)
08-11 15:48:27.476: E/ERROR(11117):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-11 15:48:27.476: E/ERROR(11117):     at android.os.Looper.loop(Looper.java:137)
08-11 15:48:27.476: E/ERROR(11117):     at android.app.ActivityThread.main(ActivityThread.java:4867)
08-11 15:48:27.476: E/ERROR(11117):     at java.lang.reflect.Method.invokeNative(Native Method)
08-11 15:48:27.476: E/ERROR(11117):     at   java.lang.reflect.Method.invoke(Method.java:511)
08-11 15:48:27.476: E/ERROR(11117):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
08-11 15:48:27.476: E/ERROR(11117):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
08-11 15:48:27.476: E/ERROR(11117):     at dalvik.system.NativeStart.main(Native Method)
08-11 15:48:27.476: E/ERROR(11117): 192.168.0.101:5222 Exception: null

我还检查了防火墙是否允许连接,并尝试连接到 Hosted.im 服务而不是家庭服务器,结果相同。

I have this line added to MANIFEST:
<uses-permission android:name="android.permission.INTERNET"/>

我遇到了同样的问题,但在这里找到了解决方案:简单的 Asmack 程序无法运行 https://stackoverflow.com/questions/24482595/simple-asmack-program-not-working

解决方案是将连接代码放入单独的线程中。

public static final String HOST = "208.68.163.218"; //write your host name
public static final int PORT = 5222;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    connect();
}

public void connect() {
    Thread t = new Thread(new Runnable() {

        @Override
        public void run() {
            Context context = getApplicationContext();
            SmackAndroid.init(context);
            ConnectionConfiguration ConnectionConfiguration = new ConnectionConfiguration(HOST, PORT);
            ConnectionConfiguration.setDebuggerEnabled(true);
            XMPPConnection connection = new XMPPTCPConnection(ConnectionConfiguration);     

            try {
                connection.connect();
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (SmackException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (XMPPException e) {
                e.printStackTrace();
            }
        }
    });
    t.start();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法与 aSmack 4.0.2 建立新连接 的相关文章

  • 小米Exif方向标签错误

    我在用着ExifInterface对于通过检测方向标签从图库中选取的旋转图像 它正在工作 最近我在小米9 SE上测试了应用程序 发现相机拍摄的照片有方向标签8 旋转270 但照片方向是正确的 不需要旋转 为什么方向标签错误 如何找到正确的旋
  • Dao 和服务接口的需求

    我是Spring Mvc的新手 在很多教程中 我发现有一个像这样的Dao接口 public interface StudentDAO public List
  • 如何为 Android 应用实施 Google Play 许可? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • Android 6.0如何隐藏导航栏?

    我有以下代码 getWindow getDecorView setSystemUiVisibility View SYSTEM UI FLAG LAYOUT STABLE View SYSTEM UI FLAG LAYOUT HIDE NA
  • 将目录从 Assets 复制到本地目录

    我正在尝试使用资产文件夹中的目录并将其作为File 是否可以访问 Assets 目录中的某些内容File 如果没有 如何将 Assets 文件夹中的目录复制到应用程序的本地目录 我会像这样复制一个文件 try InputStream str
  • 在 Apache POI 4.0 中为 XSSFWorkbook 创建自定义颜色样式

    要在 Apache POI 3 7 及更低版本中为 XSSFWorkbook 应用自定义颜色 可以执行以下操作 java awt Color c new java awt Color 1 2 3 XSSFCellStyle xcs xssf
  • 使用正则表达式解析HLS m3u8文件

    我想解析 HLS master m3u8 文件并从中获取带宽 分辨率和文件名 目前我正在使用字符串解析来搜索字符串中的某些模式并执行子字符串来获取值 示例文件 EXTM3U EXT X STREAM INF PROGRAM ID 1 BAN
  • 在日志中显示 Spring 事务

    我为 spring 配置了事务支持 有什么方法可以记录事务以确保我正确设置所有内容 在日志中显示是查看正在发生的情况的好方法 in your log4j properties 对于替代记录器或 log4j 的 xml 格式 请查看文档 根据
  • 以从左到右的模式启动 Activity

    我面临一个问题 我有三项活动 我需要向左滑动开始新活动 Activity1 Activity2 Activity3 means 当我单击按钮时 新活动不应像 Android 行为那样直接显示 我希望新活动来自右侧并显示在当前屏幕上 任何人都
  • 为什么枚举可以有包私有构造函数?

    既然枚举构造函数只能由其常量调用 为什么允许它是包私有的呢 构造函数实际上不是包私有的 它是隐式的private接口方法的隐式方式public即使您不添加关键字 JLS 的相关部分 8 8 3 http docs oracle com ja
  • 如何获取屏幕触摸的 x,y 坐标?

    当我的应用程序运行时 每当有人触摸屏幕时 是否有一种简单的方法来获取 x y 坐标 只是想将它们存储在一些整数中 覆盖onTouchEvent MotionEvent event 然后打电话event getX and event getY
  • 如何强制 JTable 在包含阿拉伯字符的情况下不反转文本?

    我有以下文字 word 但是当它显示在我的 JTable 上时 它看起来像这样 word 在每个 JLabel 或 TextArea 或任何其他输入中 它确实看起来像原始文本 word 仅在 JTable 上我遇到这样的问题 我不在乎它是否
  • 在自定义 BaseAdapter 子类中使用 Butter Knife 会导致“无法注入视图”错误

    我正在尝试使用 Butter Knife 来简化自定义 BaseAdapter 类的创建 我正在遵循这里的示例 http jakewharton github io butterknife http jakewharton github i
  • 自定义 lint 规则,确保不调用特定方法

    我想确保在我的 Android 应用程序 Java 和 Kotlin 代码中 中不会调用特定类的特定方法 假设 我有一个名为Bar有两种方法 allowed and disallowed 这是代码 package com public cl
  • Android AudioRecord 与 MediaRecorder 录制音频

    我想在我的 Android 手机上录制人声 我注意到 Android 有两个类可以做到这一点 录音带 http developer android com reference android media AudioRecord html a
  • 使用 libGDX 写入 Json

    我是 Json 和 libGDX 的新手 但我创建了一个简单的游戏 我想将玩家姓名及其分数存储在 Json 文件中 有没有办法做到这一点 我想创建一个 Json 文件Gdx files localStorage如果它不存在 如果存在 则向其
  • List 和 List 之间的区别[重复]

    这个问题在这里已经有答案了 我读过很多这方面的内容 我知道 List listOfObject new ArrayList
  • 无法解析类或包“h2”

    我为我的网络应用程序开发后端应用程序 在我的项目 SpringBoot Maven 中 我想添加 h2 数据库 根据网上的教程 添加了以下几行应用程序属性 file server port 8088 spring h2 console en
  • 将图像上传到服务器 PHP Android

    我现在迷失了尝试将图像上传到我的服务器 我可以在 Android 设备上拍照并获取我的位置 我有以下代码将文件上传到服务器 public Boolean postFunction File image String tag postFunc
  • Android:自动重新连接 BLE 设备

    我的目标是让 Android 设备重新连接到之前连接过的 BLE 设备无需用户干预与经典 BT 配对设备的操作方式相同 甚至可以通过电源循环工作 BTLE 设备的想法之一是节省服务 绑定和启用状态 以便重新连接非常快并且在外设上消耗很少的功

随机推荐

  • 带有数字键的 Django postgres Json 字段

    我有带有 postgres json 字段的模型 class MyModel models Model data JSONField null True 然后 我这样做 m1 MyModel objects create data 10 2
  • 摆脱 django testsuite 中的空 models.py

    我有两个纯服务应用程序 它们充当我的核心模型的仆人 因此 他们没有任何自己的模型 虽然第一个服务的测试套件运行良好 但第二个服务会抛出以下错误 django core exceptions ImproperlyConfigured App
  • C++:在另一个函数中声明一个函数不是编译器错误,那么...它是什么?

    我无意中编译了一个与此类似的源 void y optionally declaring y void x some code void y some code void y some code optionally defining y 这
  • python re.search 不适用于多行字符串

    我已将此文件加载到字符串中 some preceding stuff static char header data 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1
  • py中的pyc文件反编译失败

    感谢您的关注 我有一个pyc文件 我需要获取它的源代码 我已经尝试了很多库 但是版本有错误 这是尝试反编译时的命令行输出 C Users nigga22nd Downloads gt uncompyle6 bot pyc uncompyle
  • .NET中的序列号(注册密钥)算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有一些关于 IP 安全等的及时帖子 但我找不到专门针对算法的帖子 在我当前的一个项目中 我们决定采用离线注册密钥系统的路线 我想我们最
  • NSD昨天的日期

    我如何创建一个NSDate具有当前日期以外的自定义日期的对象 例如 我想创建昨天或两天前的变量 你应该使用NSCalendar https developer apple com library mac documentation Coco
  • 使用QMediaPlayer播放资源中的mp3文件

    我尝试播放资源中声明的 mp3 文件 但它显示 Btn clicked current media qrc sound sound FarAway mp3 Error QMediaPlayer FormatError Media state
  • 读取字符串和整数

    我想要做的是从文本文件中读取一行 其中包含一个长度 Name Surname 1 14 我知道如果我读取字符串 字符串将是所有字符 直到空格 但是 getline 将整行读取为字符串 那么我该如何阅读这样的一行呢 有什么简单的方法或者我必须
  • 将字符串拆分为字符串数组

    我正在尝试找到一种将字符串拆分为字符串数组的方法 每当遇到白色香料时我都需要将其拆分 例如 嗨 我是保罗 into 嗨 我是 保罗 如何使用正则表达式表示 split 方法中的空格 你需要一个正则表达式 例如 s 意思是 每当遇到至少一个空
  • angularjs Nodejs应用程序的最佳部署架构

    我在 AngularJS 和 NodeJS 中有 Moto Adverts 应用程序 Angularjs client side 在 Apache HTTP Server localhost 8000 上运行 但 nodejs server
  • Qt 单例实现

    我正在寻找 Singleton Qt 实现并发现this https wiki qt io Qt thread safe singleton 但我对此有一些疑问 制作的目的是什么create a QBasicAtomicPointer 重点
  • 使用 ScikitLearn 的神经网络实现时出现的问题

    我正在尝试使用 Scikit Learn 提供的神经网络实现来实现图像处理 我有近 10 000 张 JPG 格式的彩色图像 我将这些图像转换为 PNG 格式并删除了颜色信息 新图像都是黑白图像 将这些图像转换为矢量格式后 这些图像矢量形成
  • Pascal 支持向函数传递参数吗?

    我是 Pascal 新手 我正在尝试编写一个简单的程序 但在函数之间传递值时遇到问题 这是我所拥有的一小部分 program numberConverter const maxValue 4999 minValue 1 var num in
  • @echo 在cmd中关闭

    我正在尝试编写一个 BAT 脚本 我有以下内容 echo off REM Comments here SETLOCAL ENABLEDELAYEDEXPANSION set PROG ROOT C Prog set ONE 1 echo 1
  • .htaccess文件自动修改

    我有由 WordPress 提供支持的网站 并且 WordPress 根文件夹中也有 html 文件 因为 WordPress 不允许 html 文件 我编写了 htaccess 代码来打开 html 文件以及 WordPress 页面 但
  • 使用 python-ldap 向 Active Directory 进行身份验证始终返回 (97, [])

    如同这个问题 https stackoverflow com questions 140439 authenticating against active directory using python ldap 我尝试使用 python l
  • 将引用单元格公式添加到代码中

    在此输入图像描述 https i stack imgur com 48OqU jpg 这就是输出 https i stack imgur com FCqOg jpg 我在单元格 C1 中有这个公式 用于平均第 2 列中的值相对于第 1 列的
  • rake 数据库适配器与database.yml不一致

    In database yml rails 生成的默认文件 default default adapter sqlite3 pool 5 timeout 5000 development lt lt default database db
  • 无法与 aSmack 4.0.2 建立新连接

    我正在学习 Android 编程 这几天我一直在努力解决这个问题 我正在编写一个应该连接到 XMPP 服务器的 Android 应用程序 我总是遇到同样的错误 并且真的不知道我做错了什么 我尝试过通过谷歌找到的示例代码 但也无法与它们建立连